文件存在的IIS 404错误


15

我从提供程序(Windows 2008 R2,IIS 7.5)重新安装了VPS。

默认网站可以正常工作:http://5.9.251.167/
我创建了一个新网站,并绑定了http://new.ianquigley.com
在该服务器上以及Domain映射到IP地址的其他任何位置。(例如,ping new.ianquigley.com)。

我创建了子文件夹,c:\inetpub\wwwroot\com.ianquigley并创建了一个index.html内容为“ <html>cake</html>” 的HTML文件

该网站的默认文档是 index.html

在服务器上的Chrome浏览器中,我浏览到http://new.ianquigley.com/index.html并显示404错误。

页面上说;

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had it's name changed, 
or is temporarily unavailable.

Detail:
Module: IIS Web Core
Notification: HttpRequestHandler
Handler: StaticFile
Error Code: 0x80007002
Request URL: http://new.ianquigley.com/index.html
Physical path: c:\inetpub\wwwroot\com.ianquigley\index.html
Logon Method: Anonymous
Logon User: Anonymous
Failed Request Log: c:\inetpub\logs\FailedRequestLog

物理路径确实存在。该文件夹wwwrootcom.ianquigley都以“人人”和“读取”权限。

c:\inetpub\wwwroot\logfiles\w3svc2\u_ex130201文件包含带有404错误代码的index.html请求。

更新(来自下面的评论)
我创建的c:\cake具有“所有人”“完全控制”权限。将index.html文件移到其中,并更改IIS中的映射。再次在服务器上的浏览器中检查该页面,可以得到与上述相同的信息,只是“物理路径”是c:\cake\index.html

更新2 默认网站(可以正常工作/可以从磁盘读取)在“ DefaultAppPool”中运行,该站点最初使用帐户“ ApplicationPoolIdentity”。新网站也使用相同的应用程序池。我尝试将帐户更改为;NetworkService,LocalService和LocalSytem(每次刷新应用程序池)..仍然没有喜悦!

W3SVC2日志

#Software: Microsoft Internet Information Services 7.5
#Version: 1.0
#Date: 2013-02-02 20:00:02
#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken
2013-02-02 20:00:02 5.9.251.167 GET /index.html - 80 - 5.9.251.167 Mozilla/5.0+(Windows+NT+6.1;+WOW64)+AppleWebKit/537.17+(KHTML,+like+Gecko)+Chrome/24.0.1312.57+Safari/537.17 404 0 2 1151

sc-win32-status: 2意思是“找不到文件”。因此,这可能仅仅是文件访问许可之类的问题。如果是这样,为什么默认网站可以成功地从c:\inetpub\wwwroot文件夹中读取,但不能从具有权限的子文件夹中读取。

现在,我完全陷入了困境。


当我从URL中删除index.html文件时,出现403错误,这可能是由于IIS中站点的根目录未映射到c:\inetpub\wwwroot\com.ianquigley?您是否尝试过将站点移动到inetpub之外的物理文件夹,并将IIS网站映射到该文件夹​​?
levelnis

谢谢你的建议。尝试过并更新了问题。仍然没有喜悦:(
伊恩·奎格利

应用程序池配置为以哪个身份运行?如果是AppPoolIdentity,请尝试将其更改为NetworkService
levelnis

我尝试将其更改为Network Serivce-仍然是同样的问题
Ian Quigley

您是否在IIS中启用了静态内容子功能?
克里斯·麦克肯

Answers:


27

Facepalm

新的VPS框,表示默认行为。即“隐藏已知类型的文件类型扩展名”。当我将其关闭时,我发现我的文件实际上名为index.html.txt。将其重命名为index.html问题已解决。


24
为什么只有服务器管理员人群的服务器操作系统会禁用文件扩展名显示,就像您是计算机盲手一样?哦,微软...
Kaslai

1
@阿斯莱:+1。伊恩(Ian):+1最终肯定是一个绝对的痛苦。
Nope

我的天啊。我的是index.htm.html。太傻了
Piotr Kula 2015年

1
神圣的***。4年后,我在为全新的服务器安装上的404错误而苦苦思索的同时,迷失了自己。index.htm.txt如果您在附近,我会整天为您买啤酒。
史蒂夫(Steve)

1

确保已安装Web服务器下的“公共HTTP功能”。您可以使用服务器管理器->角色-> Web服务器->角色服务进行检查,如果没有,请进行安装。

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.