当请求静态内容时,IIS7返回空白


14

我正在尝试使用Windows 7 Home Premium版配置一台EEEPC演示机,并正确安装所有安装了IIS7的驱动程序(不要问我为什么是Home版)。

我已经将应用程序部署到要在ASP.NET MVC站点的计算机上进行演示的位置,通过控制台添加了网站,添加了应用程序池。该应用程序池以NetworkService身份运行,而来宾则以IUSR身份验证。

我已经添加了对NetworkService的修改权限,并且对网站的文件夹及其内容具有对IUSR的读取和执行权限。

当我访问Web的根时,说 http://example.com/,我从网站获得了正确的HTML渲染(这意味着该应用程序可以工作),但是问题是所有静态内容都返回空白。

我不确定为什么会这样。当我访问静态内容时,没有404或500错误页面,只是空响应。所有由ASP.NET生成的内容都可以正常工作(尽管有些奇怪,因为不会加载所有CSS和图像)

请帮忙,IIS7管理控制台让我非常困惑,明天我需要机器。

Answers:



2

就我而言,已经安装了服务器角色,但是即使对于仅具有单个处理程序映射的琐碎测试站点,静态处理程序也可以提供空白页。

解决方法是启用请求限制“仅当请求映射到时才调用处理程序”。我将其设置为“文件”还是“文件或目录”都没有关系;只要启用此复选框,它就可以工作:

                  在此处输入图片说明

如果仍然不能解决问题,则导致空白页的另一件事是尝试在“请求路径”部分中指定路径,例如publicpublic/*。后者完全是错误的,而前者应该被接受,但结果是空白页。解决方案是将处理程序映射包装到一个<location path='public'>节中,指定*“请求路径”设置。或者,在IIS管理器中,展开站点并首先选择您的文件夹,然后编辑处理程序映射。


1

正如@MattB建议的那样,我没有启用“静态内容”功能,但这只是问题的一部分。

我添加了“静态内容”功能,但问题仍然存在,因此我着手从处理程序映射列表中删除默认的MvcHttpHandler,并以某种方式解决了问题……因此,问题是MvcHttpHandler会在StaticFileHandler,

仅供参考,在安装“静态内容”后,还请确保...

  1. 在Internet信息服务管理器中,单击您的网站。
  2. 双击“处理程序映射”功能。
  3. 在右侧(“操作”面板)上,您将看到一个标题为“查看订购清单...”的链接,单击该链接。
  4. 然后,您将找到模块与每个请求匹配的顺序,请确保该顺序有意义。

在我的情况下,MvcHttpHandler高于一切,我将其移到列表的底部来解决了这个问题,这是应该放在的最明智的位置,因为AXD文件处理程序,TRACE处理程序,OPTIONS处理程序和静态内容得到了体现首先处理请求。

希望这可以帮助搜索相同问题的人:-)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.