Błąd IIS 404, gdy plik istnieje

15

Mam nową instalację VPS od mojego dostawcy (Windows 2008 R2, IIS 7.5).

Domyślna strona internetowa działa dobrze: http://5.9.251.167/
utworzyłem nową stronę internetową i powiązanie z http://new.ianquigley.com
na tym serwerze i wszędzie tam, gdzie domena mapuje na adres IP. (na przykład ping new.ianquigley.com).

Utworzyłem podfolder c:\inetpub\wwwroot\com.ianquigleyi utworzyłem plik HTML index.htmlz zawartością „ <html>cake</html>

Domyślnym dokumentem witryny jest index.html

Na serwerze w Chrome przeglądam stronę http://new.ianquigley.com/index.html i otrzymuję błąd 404.

Strona mówi;

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

Ścieżka fizyczna istnieje. Oba foldery wwwrooti com.ianquigleyoba mają uprawnienia „Wszyscy” i „Odczyt”.

c:\inetpub\wwwroot\logfiles\w3svc2\u_ex130201Plik zawiera prośbę o index.html z kodem błędu 404.

aktualizacja (z komentarza poniżej)
Utworzyłem c:\cakez uprawnieniami „Pełna kontrola” „Wszyscy”. Przeniesiłem tam mój plik index.html i zmieniłem mapowanie w IIS. Ponowne sprawdzenie strony w przeglądarce na serwerze daje mi to samo, co powyżej, z wyjątkiem tego, że ścieżka fizyczna toc:\cake\index.html

aktualizacja 2 Domyślna strona internetowa (która działa dobrze / potrafi odczytać z dysku) działa w „DefaultAppPool”, która pierwotnie używała konta „ApplicationPoolIdentity”. Nowa witryna korzysta również z tej samej puli aplikacji. Próbowałem zmienić konto na; NetworkService, LocalService i LocalSytem (odświeżanie puli aplikacji za każdym razem) .. wciąż nie ma radości!

Dziennik 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Środki "file not found". Prawdopodobnie jest to po prostu problem z dostępem do pliku. Jeśli tak, to dlaczego domyślna witryna internetowa może c:\inetpub\wwwrootpomyślnie odczytać z folderu, ale nie z podfolderu za zgodą.

W tej chwili jestem kompletnie zakłopotany.

Ian Quigley
źródło
Kiedy usuwam plik index.html z adresu URL, pojawia się błąd 403, co może być prawdopodobnie spowodowane brakiem mapowania katalogu głównego witryny w IIS c:\inetpub\wwwroot\com.ianquigley? Czy próbowałeś przenieść witrynę do fizycznego folderu poza inetpub i zamiast tego zamapować witrynę IIS na ten folder?
levelnis
Dzieki za sugestie. Próbowałem i zaktualizowałem pytanie. Nadal nie ma radości :(
Ian Quigley
Jaka tożsamość jest skonfigurowana do działania jako pula aplikacji? Jeśli tak AppPoolIdentity, spróbuj zmienić go naNetworkService
levelnis
Próbowałem zmienić go na Network Serivce - wciąż ten sam problem
Ian Quigley
Czy masz włączoną podfunkcję zawartości statycznej w IIS?
Chris McKeown,

Odpowiedzi:

27

Facepalm

Nowe pole VPS oznacza zachowanie domyślne. tzn. „Ukryj rozszerzenia typów plików dla znanych typów”. Kiedy to wyłączyłem, odkryłem, że mój plik został nazwany index.html.txt. Zmieniłem nazwę index.htmli problem został rozwiązany.

Ian Quigley
źródło
24
Dlaczego system operacyjny serwera, w którym jedyną prawdziwą publicznością jest tłum administratorów serwera, wyłącza wyświetlanie rozszerzeń plików, jakbyś był analfabetą komputerową? Och Microsoft ...
Kaslai
1
@Aslai: +1. Ian: +1 za to musiało być absolutnym bólem, aby zrozumieć na końcu.
Nie
O MÓJ BOŻE. Mój był index.htm.html. Tak głupi
Piotr Kula,
1
Święta ***. 4 lata później natknąłem się na to, gdy pakowałem swój mózg z powodu 404 nieszczęść na zupełnie nowej instalacji serwera. index.htm.txt Gdybyś był w pobliżu, kupowałbym ci piwa przez cały dzień.
Steve
1

Upewnij się, że zainstalowano „Typowe funkcje HTTP” na serwerze sieci Web. Możesz użyć Menedżera serwera -> Role -> Serwer WWW -> Usługi ról, aby sprawdzić i zainstalować, jeśli nie jest.

Ryan
źródło