Ошибка IIS 404 при наличии файла

15

У меня свежая установка 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папки успешно, но не из подпапки с разрешения.

Прямо сейчас я полностью в тупике.

Ян Куигли
источник
Когда я удаляю файл index.html из URL-адреса, я получаю ошибку 403, которая может быть связана с тем, что корневой каталог для сайта в IIS не сопоставлен c:\inetpub\wwwroot\com.ianquigley? Вы пытались переместить сайт в физическую папку за пределами inetpub и вместо этого сопоставить веб-сайт IIS с этой папкой?
Levelnis
Спасибо за предложение. Попробовал и обновил вопрос. До сих пор нет радости :(
Ян Куигли
Какой идентификатор настроен для запуска пула приложений? Если это так AppPoolIdentity, попробуйте изменить его наNetworkService
levelnis
Я попытался изменить его на Network Serivce - все та же проблема
Ian Quigley
Включена ли в IIS подфункция статического содержимого?
Крис МакКаун

Ответы:

27

Facepalm

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

Ян Куигли
источник
24
Почему серверная ОС, где единственная реальная аудитория - это толпа администратора сервера, отключает отображение расширений файлов для вас, как будто вы неграмотный компьютер чмо? О, Microsoft ...
Каслай
1
@ Aslai: +1. Ян: +1, потому что это должно было быть абсолютной болью, чтобы понять в конце.
Нет
О, МОЙ БОГ. Мой был index.htm.html. Такой тупой
Петр Кула
1
Святой с ***. Спустя 4 года я наткнулся на это, пока ломал голову над своими 404 проблемами на новой установке сервера. index.htm.txt Если бы вы были рядом, я бы весь день покупал вам пиво.
Стив
1

Убедитесь, что на веб-сервере установлены «Общие функции HTTP». Вы можете использовать Диспетчер серверов -> Роли -> Веб-сервер -> Службы ролей, чтобы проверить и установить, если это не так.

Райан
источник