带有静态文件问题的ASP.NET VirtualPathProvider

Jef*_*eff 8 asp.net virtualpathprovider iis-7.5

我在Windows 7上运行IIS 7.5.我的ASP .NET应用程序使用VirtualPathProvider.我的VirtualPathProvider返回并渲染了大多数文件(aspx页面).静态文件(css/images)不是.如果我尝试直接浏览它们(或者如果它们被我的虚拟aspx页面引用),它们会产生HTTP 404错误

我已经验证了我的web.config具有为静态文件类型注册的正确处理程序.

这有点奇怪:

  1. 如果我尝试浏览非虚拟gif文件(实际存在于网站根目录下的文件系统上的文件),则呈现正常.

  2. 如果我在Visual Studio中使用WebDev而不是IIS运行,则虚拟gif文件可以正常呈现.

  3. 在调试模式中VirtualPathProvider.GetFile,我可以看到我的VirtualPathProvider在页面返回404错误之前返回一个完全有效的虚拟gif文件实例...所以我知道我的VirtualPathProvider工作得很好.

注意,当我说IIS时,我并不是说在部署环境中.我只是意味着将项目设置切换为使用IIS而不是WebDev.

有任何想法吗?

谢谢.

Jef*_*eff 11

......并回答:

我遇到的问题,特别是路由显示,即使使用ASP.NET的通配符映射,我的静态文件最终会出现404错误代码,因为路由正在捕获它们,将请求发送到MVC处理程序,没有找到路由.失败.

所以,作为对我自己(以及其他任何正在做类似事情的人)的说明,我发现你需要做的就是让你的VPP提供静态文件.

首先,您需要获得映射到ASP.NET的所需静态文件类型 ...