文件存在时出现 IIS 404 错误

文件存在时出现 IIS 404 错误

我从我的提供商处获得了全新的 VPS 安装(Windows 2008 R2,IIS 7.5)。

默认网站运行良好:http://5.9.251.167/
我创建了一个新网站,并绑定了http://new.ianquigley.com
在该服务器以及域映射到 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文件包含对 index.html 的请求以及 404 错误代码。

更新(来自下面的评论)
我创建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成功读取文件夹,但无法读取具有权限的子文件夹。

现在我完全不知所措。

答案1

捂脸

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

答案2

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

相关内容