【问题标题】:ASP.NET VirtualPathProvider with Static Files Issue带有静态文件问题的 ASP.NET VirtualPathProvider
【发布时间】:2011-08-07 19:23:40
【问题描述】:

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

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

奇怪的是:

  1. 如果我尝试浏览到非虚拟 gif 文件(实际存在于网站根目录下的文件系统中的文件),它可以正常显示。

  2. 如果我在 Visual Studio 中使用 WebDev 而不是 IIS 运行,则虚拟 gif 文件呈现良好。

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

注意,当我说 IIS 时,我并不是指在已部署的环境中。我的意思是切换项目设置以使用 IIS 而不是 WebDev。

有什么想法吗?

谢谢。

【问题讨论】:

    标签: asp.net iis-7.5 virtualpathprovider


    【解决方案1】:

    ...和answer:

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

    因此,作为对我自己(以及其他任何正在做类似事情的人)的说明,我发现您需要执行以下操作才能让您的 VPP 提供静态文件。

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

    【讨论】:

    • 哦,你救了我的头痛!很棒的文章,很棒的发现。
    • 这篇文章节省了几个小时!谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    • 1970-01-01
    • 2020-09-21
    • 2021-05-02
    • 2011-08-01
    • 1970-01-01
    相关资源
    最近更新 更多