为啥 IIS 返回空响应?
Posted
技术标签:
【中文标题】为啥 IIS 返回空响应?【英文标题】:Why does IIS return empty responses?为什么 IIS 返回空响应? 【发布时间】:2015-08-25 08:09:11 【问题描述】:我刚刚使用 文件系统发布 将 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?
【问题讨论】:
或许可以尝试将image/png
添加到您的Accept
标头中,看看您是否能恢复内容?
是SPA吗?如果是 - 你能显示你的 webconfig 吗?
是的,我想这是一个有角度的 SPA,但出于隐私原因,我无法提供整个 web.config。也许我可以提供一个感兴趣的特定部分?
你能检查一下本地文件夹的权限吗?运行应用程序池的用户需要对包含图像的文件夹具有权限
您启用了哪些 IIS 功能?
【参考方案1】:
护脸
事实证明,Lex Li:s 的评论把我引向了正确的方向。我完全错过了在 IIS“通用 HTTP 功能”中包含“静态内容”功能。
【讨论】:
哇。只是有同样的问题。这不是你看到的,因为你知道......“常见的 http 功能”......以上是关于为啥 IIS 返回空响应?的主要内容,如果未能解决你的问题,请参考以下文章
为啥不能通过 IIS7 中的 web.config 删除“服务器”响应标头?