0

在使用 VS2010 使用 Mvc.JQuery.Datatables Nuget 开发 ASP.NET MVC4 Web 应用程序时,我发现引用的 EmbeddedResourceVirtualPathProvider NuGet 在我的开发盒上运行良好,但在我的生产盒上却惨遭失败。

生产盒是 Windows 2003,安装了 IIS6 和 .NET 4.0。

我在 SO 和谷歌上搜索了很多东西,但是在实施了建议的解决方法之后,它仍然失败:

这就是我所做的。

  1. 按照https://stackoverflow.com/a/5178993AppInitialize的建议实施
  2. 按照http://haacked.com/archive/2008/11/26/asp.net-mvc-on-iis-6-walkthrough.aspx的建议为 ASP.NET 实施通配符映射
  3. 按照https://stackoverflow.com/a/3144841的建议为静态文件实施 IgnoreRoute

但它仍然不能提供所有文件。我得到了嵌入的部分视图,但没有嵌入的 css、js 和 jpg 文件。

我的 web.config 有一个 StaticFileHandler 的条目,如下所示:

<system.webServer>
  <handlers>
    <add path="*.css" verb="GET" name="Static css" type="System.Web.StaticFileHandler" />
    <add path="*.js" verb="GET" name="Static js" type="System.Web.StaticFileHandler" />
    <add path="*.jpg" verb="GET" name="Static jpg" type="System.Web.StaticFileHandler" />
    <add path="*.gif" verb="GET" name="Static gif" type="System.Web.StaticFileHandler" />
  </handlers>
</system.WebServer>

我似乎遗漏了一些关键的东西。有什么建议么?

4

1 回答 1

0

使用 IIS6 时,#1-3 中列出的所有项目都是必需的,但另外,您需要认识到 IIS6 将其处理程序定义为httpHandlerssystem.web部分中,而 IIS7 调用它们handlers并且它们在system.webServer配置文件的部分中。

因此,您需要添加以下内容才能使其在 IIS6 中工作

<system.web>
  ....
  <httpHandlers>
    <add path="*.css" verb="GET" type="System.Web.StaticFileHandler" />
    <add path="*.js" verb="GET" type="System.Web.StaticFileHandler" />
    <add path="*.jpg" verb="GET" type="System.Web.StaticFileHandler" />
    <add path="*.gif" verb="GET" type="System.Web.StaticFileHandler" />
  </httpHandlers>
</system.web>
于 2013-03-13T16:22:42.467 回答