Na serwerze dedykowanym jest zainstalowany IIS 7.5. Aplikacja sieci Web ASP.NET 4.0 została skopiowana do swojego folderu, nowa strona internetowa jest tworzona pod własnym adresem IP na post 80, konta IIS_IUSR i IUSR mają prawa do odczytu / wykonywania w folderze witryny, witryna jest przypisana do własnej zintegrowanej puli aplikacji z wersją 4.0 .NET (Próbowałem klasycznej puli z tymi samymi wynikami).
Problem: gdy próbuję uzyskać dostęp do tej witryny, przeglądarka ładuje tylko treść wygenerowaną przez zasoby .NET, takie jak strony aspx, pliki .axd itp. Obrazy statyczne, statyczne pliki js, css i html znajdują się w źródle strony, ale IIS nie im służyć. Narzędzia deweloperskie we wszystkich przeglądarkach narzekają, że wszystkie te statyczne zasoby zostały wysłane przez serwer z niewłaściwym typem treści (zwykły tekst zamiast obrazu, stylów itp.). Co robię źle?
Odpowiedzi:
IIS 7 / 7.5 ma nową „funkcję” - Usługi ról. Post z rsbarro przypomniał mi, że istnieje jedna usługa roli odpowiedzialna za zawartość statyczną. Jest to serwer WWW / wspólne funkcje HTTP / treść statyczna. Sprawdź, czy ikona Typów MIME jest obecna w Menedżerze IIS, jak sugeruje rsbarro.
Jeśli tak nie jest, musisz zainstalować usługę roli Treść statyczna. Aby to zrobić, wybierz:
Z tego, co opisujesz, wydaje się, że to twój problem.
Ogólnie rzecz biorąc, jeśli IIS7 nie robi czegoś, co zrobił IIS6, pierwszą rzeczą do sprawdzenia jest sprawdzenie, czy zainstalowano odpowiednią usługę roli. Mam nadzieję że to pomoże.
źródło
W obszarze IIS przejdź do swojej witryny internetowej i sprawdź sekcję Typy MIME (patrz zdjęcie poniżej). Upewnij się, że widzisz na tej liście wpisy dla plików .js, .css, .html itp. Oraz że określono odpowiedni typ MIME. Usługi IIS 7.5 będą wyświetlać strony tylko wtedy, gdy określony jest typ MIME. Domyślnie typy MIME dla tych rozszerzeń są konfigurowane w
applicationHost.config
pliku znajdującym się wC:\Windows\system32\inetsrv\config
folderze (może być konieczne uruchomienie Notatnika jako Administrator, aby wyświetlić plik). Wystarczy wyszukać .js i należy znaleźć wpis mocy<mimeMap>
w<staticContent>
elemencie.Te ustawienia można zastąpić w
web.config
pliku. Jeśli są, pojawią się w następującej lokalizacji wweb.config
:Na pewno zacznę od sprawdzenia. Jeśli wszystko wygląda poprawnie w sekcji Typy MIME, to możliwe, że masz moduł, który zakłóca żądania plików statycznych (ale najprawdopodobniej tylko jeśli
<modules runAllManagedModulesForAllRequests="true" />
ustawiłeś w tej<system.webServer>
sekcji). W takim przypadku usunę wszystkie ustawienia modułów w twoimweb.config
i sprawdzę, czy możesz wywołać pliki statyczne, a następnie przeczytam je pojedynczo, aby zobaczyć, który moduł powoduje problem. Jeśli nie możesz tego rozgryźć, sugerowałbym opublikowanie treści twojego pytaniaweb.config
(lub przynajmniej sekcjisystem.web
isystem.webServer
) w pytaniu.źródło
Miałem ten sam problem, ale moja pula aplikacji działała na koncie domeny, a ten użytkownik miał prawa do folderu witryny. Moja witryna wyświetlała aspx, ale nie zawierała treści statycznych. Rozwiązaniem mojego problemu było dodanie grupy IIS_IUSRS do lokalnych zasad bezpieczeństwa o nazwie „personifikacja klienta po uwierzytelnieniu”. Grupa IIS_IUSRS miała na nim moje konto domeny. Korzystam z serwera iis 7.5 Windows 2008.
źródło