我在global.asax的Application_Start方法中添加了以下几行:
var provider = new TestVirtualPathProvider();
HostingEnvironment.RegisterVirtualPathProvider(provider);然而,在IIS6中部署此应用程序时,从不使用'TestVirtualPathProvider‘(它在ASP.NET开发服务器中使用)。
编辑:默认路径提供程序总是正确地完成其工作,并且正确地提供(非嵌入式)视图。问题很简单,我想使用我自己的路径提供程序来提供嵌入式视图。因此,最初,我已经配置了以下通配符映射:

这在IIS6中不起作用有什么可能的原因吗?是否有其他因素(例如处理程序)可能会影响使用的VirtualPathProvider?
发布于 2011-03-03 17:44:04
对于组合的自定义VPP + IIS6 +预编译站点,我们需要添加来自AppInitailize()的VPP;
public static class AppStart
{
public static void AppInitialize()
{
// code to be executed automatically by the framework
}
}另请参阅:
http://sunali.com/2008/01/09/virtualpathprovider-in-precompiled-web-sites/
发布于 2010-09-02 08:53:25
更新:您想要处理无扩展名的URL这一事实是问题中没有提到的重要一点。请参阅此页面以获取使用IIS6:http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx设置MVC时的帮助。这也应该涵盖您的场景。
很可能与我在本文中回答的问题相同:http://forums.asp.net/t/995633.aspx
基本上,在您的web.config中添加以下内容:
<httpHandlers>
<add path="*" verb="GET,HEAD,POST" type="System.Web.StaticFileHandler" validate="true" />
</httpHandlers>另一个线程有一些细节来解释为什么这是必要的。
发布于 2010-09-03 10:44:09
我认为您需要在IIS6中使用ISAPI过滤器来拦截无扩展名的URL。问题是ISAPI需要用c/c++完成。
https://stackoverflow.com/questions/3601228
复制相似问题