如何在IIS中伪造目录列表?VirtualPathProvider适用于文件,但

如何在IIS中伪造目录列表?VirtualPathProvider适用于文件,但,iis,appfabric,virtualpathprovider,Iis,Appfabric,Virtualpathprovider,我们使用AppFabric 1.1和IIS 8.0运行基于xamlx的工作流。为了消除静态xamlx文件,我们使用Ron Jacobs完美的示例代码将它们存储在数据库中,并通过VirtualPathProvider提供xamlx内容 到目前为止还不错,如果有人点击了正确的uri,就会提供xamlx文件 但是现在AppFabric仪表板没有机会将xamlx文件收集并登记为服务,因为它们对AppFabric不再可见 目标必须是伪造目录列表并从db读取所有xamlx工作流名称 我试图通过扩展Virt

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

到目前为止还不错,如果有人点击了正确的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

感谢任何帮助,使这个假目录清单发生


谢谢

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


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

感谢您调查我的问题。我已经在我的web.config中使用了runAllManagedModulesForAllRequests=true。是的,我真的想覆盖IIS自动生成的目录内容列表。因为它只是显示一个空目录,所以属于它的xamlx文件存储在数据库中。希望这有助于使问题更清楚,我最近更改了标题以吸引更多的读者,至少这是目标。你建议使用什么标题?