11

我有一个通过 IIS7 在 Vista 上运行的网站。该站点在端口 88 上运行,因此http://localhost:88应该呈现默认的 /Home/Index 视图。

与所有其他视图一样,这可以正常工作。

然而,一个问题是居民。我的脚本路径指向 /Scripts/[FILE],我的 CSS 路径指向 /Content/[FILE]。我的假设是 /Content 或 /Scripts 文件夹将始终位于站点的根目录,因为我无意在虚拟目录设置中运行此站点。每当页面呈现时,它们都没有 CSS 或脚本!所以一切看起来都很不稳定,脚本显然不起作用,因此很多视图也不起作用。

这是一个非常奇怪的问题,我敢肯定是因为我缺乏在 IIS7 下托管事物的知识。任何人都可以提供任何帮助,我将不胜感激。非常感谢!

4

5 回答 5

12

我希望这个线程的继续传达一种意愿,以确保这个问题不会把任何人推下悬崖。在各种论坛中有很多关于在 Vista 上解决此问题的文档,但我找不到任何类似的 2K8 文章。如本论坛帖子所示,我能够在 Vista 机器上解决此问题。唉,类似的执行未能解决 2K8 上的问题。

我已经验证了 StaticFileHandler 已包含在 web.config中,正如 apijunkie.com 上的这篇博客文章中所建议的那样。尽管如此,还是没有运气。

在这里澄清没有运气- 我的服务器端功能非常完美。所有 MVC 路线都像冠军一样工作。只是所有的 CSS 和 JS 渲染都失败了。当浏览器直接指向 CSS 或 JS 文件时,结果页面是 ASP.NET 404 而不是传统的404 错误页面。

所以我进入 IIS7 管理器并进入 Handler Mappings 对话框。我添加了一个新的处理程序,它指定了 System.Web.StaticFileHandler 类型并给它一个 *.CSS 的扩展名。然后我对 *.JS、*.PNG 和 *.GIF 文件重复了此操作。当我在浏览器中刷新网站时,一切都完美呈现。下面的屏幕截图演示了这个过程。

处理程序映射窗口:

处理程序映射
(来源:windows.net

添加新的托管处理程序

替代文字
(来源:windows.net

这解决了问题,现在我在 W2K 中托管了一个运行良好的 MVC 应用程序。是时候喝吉尼斯了。

于 2008-12-10T02:29:16.050 回答
7

在控制面板中,打开或关闭 Windows 功能,然后检查 IIS 子子节点中的静态内容。

于 2010-11-30T05:23:45.233 回答
3

问题在于我创建应用程序的方式。根据位于此处的论坛主题,我需要选择“Classic .NET AppPool”来解决我的问题。一定要爱进步!

于 2008-12-09T19:00:13.990 回答
0

事实证明这不是 Windows 2008 上的修复程序。如果有人对如何解决此问题有任何想法,将不胜感激。

详细问题:

Windows 2K8 服务器,IIS7。打开管道并安装静态文件支持。MVC 工作,但 CSS 不呈现。

有没有搞错?

于 2008-12-10T01:19:48.310 回答
-2

问题不在于授权/身份验证,而在于现在管理 IIS 的模块。在 system.webServer 中,您应该将runAllManagedModulesForAllRequests设置为false,这样您就可以显示所有图像/css 而不会出现身份验证问题。

在 ASP.NET 网站中,之前必须将runAllManagedModulesForAllRequests的值设置为 true 以支持路由。但是,一旦使用 Service Pack 更新了 IIS 7 ,在使用 ASP.NET 路由时, runAllManagedModulesForAllRequests的值可以设置为false或省略。

参考。http://www.iis.net/configreference/system.webserver/modules

PS 不要忘记将以下行添加到我的 web.config 文件的 AppSettings 部分:

< add key="autoFormsAuthentication" value="false" />

< add key="enableSimpleMembership" value="false"/>

于 2014-12-23T23:27:09.433 回答