为什么IIS会返回空响应?

14

我刚使用文件系统发布将 AngularJS/WebAPI 项目发布到本地 IIS 应用程序,并可以在浏览器中打开网站。不幸的是,无法加载任何资源,比如图片、CSS 等。当我尝试访问位于子文件夹中的任何文件时,服务器仍会返回 HTTP 200,但正文为空。我记得几年前曾遇到过这个问题,但我不记得为什么会发生。

请求

GET http://localhost/Content/images/common/logotype.png HTTP/1.1
Host: XX.XXX.XX.XXX
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,sv;q=0.6

响应

HTTP/1.1 200 OK
Server: Microsoft-IIS/8.5
X-Powered-By: ASP.NET
Date: Tue, 25 Aug 2015 07:56:12 GMT
Content-Length: 0

从您可以看到的内容来看,这个网页没有任何正文内容,但是图像存在于文件夹中,我可以从文件系统中打开它。如果这是一个权限问题,我猜服务器会返回403或类似的错误,而不是200 OK吗?


这是一个单页应用程序吗?如果是,你能展示一下你的webconfig吗? - kamil-mrzyglod
是的,我想这是一个 Angular 单页应用程序,但由于隐私原因,我不能提供完整的 web.config 文件。也许我可以提供感兴趣的特定部分? - Marcus
1
你能检查一下本地文件夹的权限吗?运行应用程序池的用户需要对包含图像的文件夹具有访问权限。 - Marcus Höglund
2
你启用了哪些IIS功能? - Lex Li
你使用这个方法得到的响应是空的,对吗?还是它是有效的响应? - Pankaj Kapare
显示剩余5条评论
1个回答

22

面掌

原来,Lex Li的评论将我引向了正确的方向。我完全忽略了在IIS“公共HTTP功能”中缺少“静态内容”功能。

添加“静态内容”功能


3
哇。刚刚遇到了相同的问题。这不是你预料到的问题,因为你知道...“常见的HTTP功能”... - Timothy Groote

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接