我们使用的是AppFabric 1.1&IIS 8.0来运行我们基于xamlx的工作流。为了消除静态xamlx文件,我们使用了Ron Jacobs完美的示例代码将它们存储在数据库中,并通过VirtualPathProvider
提供xamlx内容。
http://blogs.msdn.com/b/rjacobs/archive/2011/06/15/how-to-load-wf4-workflow-services-from-a-database-with-iis-appfabric.aspx
到目前为止,如果有人点击了正确的uri,就会提供xamlx文件。
但现在AppFabric Dashboard没有机会收集和登记xamlx文件作为服务,因为它们对AppFabric不再可见。
目标必须是伪造一个目录列表,并从数据库中读取所有xamlx工作流名称。
我试图通过扩展VirtualPathProvider
来做到这一点,方法是以这种方式覆盖基于目录的方法
public override bool DirectoryExists(string virtualDir)
{
return base.DirectoryExists(virtualDir);
}
public override VirtualDirectory GetDirectory(string virtualDir)
{
if (IsPathVirtual(virtualDir))
{
return new VirtualDirectoryDecorator(base.GetDirectory(virtualDir));
}
else
{
return Previous.GetDirectory(virtualDir);
}
}
但这些方法并没有像我猜测的那样被调用。这是因为Uri没有扩展,asp.net也没有被调用。
感谢任何帮助,使这个虚假的目录列表发生!
感谢
您需要修改web.config
文件以指示IIS必须为每个请求调用ASP.NET,这是通过应用程序根目录中的<modules runAllManagedModulesForAllRequests="true" />
属性完成的。
我认为您应该重命名Question,因为乍一看,我认为您在内部使用VirtualPathProvider,并希望隐藏IIS自动生成的目录内容列表页面。