0

我们使用 AppFabric 1.1 和 IIS 8.0 来运行我们基于 xamlx 的工作流。为了使静态 xamlx 文件消失,我们使用 Ron Jacobs 完美的示例代码将它们存储在数据库中,并通过VirtualPathProvider.

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 仪表板没有机会收集和登记 xamlx 文件作为服务,因为它们不再对 AppFabric 可见。

目标必须是伪造一个目录列表并从 db 读取所有 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 没有被调用。

感谢任何帮助以使这个虚假目录列表发生!

谢谢

4

1 回答 1

1

您需要修改web.config文件以指示 IIS 必须为每个请求调用 ASP.NET,这是通过<modules runAllManagedModulesForAllRequests="true" />应用程序根目录中的属性完成的。

我认为您应该重命名您的问题,因为乍一看我以为您在内部使用 VirtualPathProvider 并且想要隐藏 IIS 的自动生成的目录内容列表页面。

于 2013-03-07T00:38:12.433 回答