Назад | Перейти на главную страницу

Ошибка 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 и создал HTML-файл index.html с содержанием "<html>cake</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

Физический Путь действительно существует. Папка wwwroot и com.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 папка успешно, но не подпапка с разрешением.

Сейчас я в тупике.

Facepalm

Новое поле VPS означает поведение по умолчанию. т.е. «Скрыть расширения типов файлов для известных типов». Когда я выключил это, я обнаружил, что мой файл на самом деле был назван index.html.txt. Переименовал его в index.html и проблема решена.

Убедитесь, что «Общие функции HTTP» на веб-сервере установлены. Вы можете использовать Server Manager -> Roles -> Web Server -> Role Services, чтобы проверить и установить, если это не так.