Próbuję wdrożyć aplikację ASP.NET. Wdrożyłem witrynę w IIS, ale kiedy odwiedzam ją za pomocą przeglądarki, pokazuje mi to:
błąd serwera
500 wewnętrzny błąd serwera.
Wystąpił problem z poszukiwanym zasobem i nie można go wyświetlić.
Po majstrowaniu przy web.config otrzymałem:
Nie można wyświetlić strony, ponieważ wystąpił wewnętrzny błąd serwera.
Jak mogę zobaczyć rzeczywisty problem związany z tym błędem serwera?
asp.net
iis
error-handling
Jacob Jedryszek
źródło
źródło
Odpowiedzi:
Po pierwsze, musisz włączyć i zobaczyć szczegółowe błędy swoich wiadomości internetowych, ponieważ jest to wiadomość ogólna bez informowania o tym, co naprawdę dzieje się ze względów bezpieczeństwa.
Ze szczegółowym błędem możesz znaleźć prawdziwy problem tutaj.
Ponadto, jeśli możesz uruchomić przeglądarkę na serwerze , otrzymasz szczegółowe informacje o błędzie, ponieważ serwer rozpoznaje, że jesteś lokalny, i pokazuje ci go. Lub jeśli możesz przeczytać dziennik serwera za pomocą Podglądu zdarzeń, zobaczysz również szczegóły błędu.
W IIS 6
W IIS 7
Uwaga: Możesz uniknąć Debug = true . Musisz tylko na chwilę zamknąć niestandardowe błędy i wyświetlić szczegółową stronę błędu.
Odwołanie: Włączanie niestandardowego powiadamiania o błędach systemu Windows w artykułach pomocy Go Daddy .
Może to również pomóc: Jak włączyć szczegółowe komunikaty o błędach (z IIS).
źródło
run the browser on the server
pracował dla mnie .. dziękuję bracieWyciągałem włosy z tego problemu. Upewnienie się, że następujący wpis znajduje się w
web.config
pliku głównym , naprawiło go dla mnie:Pamiętaj, że musisz dodać to do istniejących elementów XML , jeśli już tam są. Nie możesz po prostu dodać na końcu pliku, ponieważ nie możesz mieć wielu kopii dowolnego elementu.
źródło
Dla mnie przyczyną był następujący kod w pliku web.config. Kiedy go usunąłem, strona działała dobrze.
źródło
W końcu rozwiązałem ten błąd „500 Internal server” podczas wdrażania aplikacji ASP.NET MVC 3.0 na hostingu współdzielonym godaddy.ocm.
w jakiś sposób pojawiły się rozbieżności w odniesieniu do wersji plików DLL i wersji wspomnianej w pliku
web.config
.Próbowałem wszystkich opcji wymienionych na różnych forach. Nic nie pomogło, chociaż wszyscy sugerowali taką samą naprawę, ale jakoś nie zadziałało w moim scenariuszu. W końcu po dwóch dniach walenia głową. Postanowiłem usunąć wszystkie odwołania do plików DLL i usunąć web.cofig (zrobić kopię lokalną) z projektu i pozwolić aplikacji wyrzucić błąd, a następnie dodać pliki DLL jeden po drugim, tworząc kopię do local = true.
Po dodaniu wszystkich plików DLL utworzyłem nową aplikację ASP.NET MVC i skopiowałem web.config nowej aplikacji do mojej faktycznej aplikacji. Więc moja aktualna aplikacja ma teraz nowy plik web.config, a następnie skopiowałem parametry połączenia i inne odwołania z lokalnej kopii pliku web.config, który zapisałem.
Właśnie skompilowałem aplikację i opublikowałem w folderze lokalnym, a FTP opublikowałem w folderze goDaddy.
Udało się i wreszcie mój problem został rozwiązany.
źródło
W moim przypadku pomyłkę w moim
web.config
pliku. Klucz aplikacji został jakoś umieszczony pod znacznikiem <appSettings>. Ale zastanawiam się, dlaczego nie wyświetla błędu konfiguracji. Błąd 500 jest zbyt ogólny, aby zbadać problem.źródło
Moja pierwsza próba opublikowania, a następnie uruchomienia bardzo prostej witryny obsługującej tylko kod HTML „Nie można wyświetlić strony, ponieważ wystąpił błąd wewnętrzny serwera”.
Problem: Miałem witrynę ustawioną na .NET 3.5 w Visual Studio (prawym przyciskiem myszy projekt witryny sieci Web -> Strony właściwości -> Kompilacja), ale miałem witrynę sieci Web na platformie Azure skonfigurowaną jako .NET 4.0. Ups! Zmieniłem na Azure na 3.5 i działało.
źródło
Oprócz innych sugestii należy zmienić
existingResponse
atrybuthttpErrors
węzła naAuto
zReplace
lub całkowicie usunąć tę właściwość.źródło
IIS zgłasza również kod statusu 500 bez żadnych wskazówek w dzienniku zdarzeń, jeśli nie ma wystarczających uprawnień do fizycznego katalogu domowego (tzn. IIS_IUSRS nie ma dostępu).
źródło
W moim przypadku zastępuję ten kod:
Następnie zmień framework 3.5 na framework 4. Pokazuje mój szczegółowy błąd. Usuwam kod w:
To rozwiązało mój problem.
źródło
Dla IIS 8 Istnieje dodatkowy krok do zrobienia niż zmiana customErrors = Off, aby wyświetlić treść błędu.
Raul odpowiedział na pytanie w tym linku Wyłącz niestandardowe błędy IIS8 autorstwa Raul
źródło
Prawdopodobnie plik web.config jest nieprawidłowy lub brakuje jakiegoś tagu. Rozwiązałem problem, używając poprawnych tagów konfiguracyjnych dla .NET 4.
źródło
Zdałem sobie sprawę, że uprawnienia do plików i folderów na twoim serwerze również mają znaczenie. Przesłałem swoje pliki z systemu operacyjnego Linux i zwykle uprawnienia do odczytu i zapisu są ograniczone. Po przesłaniu uprawnienia są nadal takie same jak na komputerze lokalnym.
Miałem ten sam błąd i właśnie zmieniłem uprawnienia do folderu, który przesłałem i błąd zniknął.
Mam nadzieję, że to komuś pomoże.
źródło
Napotkałem ten sam problem, ale teraz mój problem został rozwiązany. Zawsze używaj na tym hostingu, to działa.
Polecę również wszystkim, abyście dokonali wszelkich zmian, które chcecie wprowadzić w pliku web.config. Zrób to jeden po drugim i przetestuj to samo w domenie na żywo, aby znaleźć dokładny problem lub funkcje, których dostawca usług hostingowych nie zezwala.
źródło
Jeśli używasz niestandardowego narzędzia HttpHandler (tj. Implementującego
IHttpModule
), upewnij się, że sprawdzasz wywołania jegoError
metody.Możliwe, że Twój moduł obsługi wyrzuci rzeczywistą
HttpExceptions
(która ma przydatnąMessage
właściwość) podczas lokalnego debugowania w następujący sposób:Sprawdź także wyjątek
InnerException
.źródło
500 wewnętrznych błędów serwera może powstać z kilku powodów. Pierwszym powodem może być niepoprawne utworzenie pliku web.config, co oznacza, że brakuje jakiegoś znacznika w pliku web.config. Po drugie, ten błąd może wynikać z jakiegoś problemu z kodem. Aby sprawdzić, który składnik aplikacji internetowej powoduje ten błąd, możesz sprawdzić Ustawienia aplikacji w pliku web.config. Szczegółowy opis rozwiązywania i śledzenia 500 wewnętrznych błędów serwera z diagramem znajduje się tutaj:
źródło
Upewnij się, że Twoje konto korzysta z IIS 7. Aby uzyskać więcej informacji, zobacz Dostosowywanie ustawień IIS na koncie hostingu systemu Windows. Postępuj zgodnie z instrukcjami w Zmiana trybu potoku na koncie hostingu systemu Windows IIS 7. Wybierz tryb zintegrowanego rurociągu. W sekcji Odwołania do projektu ustaw opcję Kopiuj lokalnie na wartość Prawda dla następujących zespołów:
Dodaj następujące zestawy do swojego projektu, a następnie ustaw opcję Kopiuj lokalnie na True:
źródło
Czasami powodem może być to, że jeden z twoich zestawów .dll nie jest poprawnie zarejestrowany na serwerze.
Na przykład można pomyślnie uruchomić aplikację sieci Web C # Excel na komputerze lokalnym z zainstalowanym pakietem Office, jednocześnie otrzymując błąd 500 przy wdrażaniu serwera, ponieważ na serwerze nie ma zainstalowanego pakietu Office, a zatem pojawia się błąd serwera.
źródło
Dla tych, którzy mają taką możliwość (hosting VPS nie hosting):
Połącz się z serwerem hostingowym za pomocą pulpitu zdalnego. Otwórz przeglądarkę internetową ze zdalnego pulpitu, a zobaczysz szczegółowy opis błędu.
Nie musisz modyfikować pliku web.config ani ujawniać żadnych danych innym osobom.
źródło
Jeśli używasz IIS 8.5, być może trzeba zmienić ustawienie Identyfikatora aplikacji z ApplicationPoolId na NetworkService
Kliknij prawym przyciskiem myszy odpowiednią pulę aplikacji, kliknij „Ustawienia zaawansowane”, a następnie przewiń w dół do identyfikatora - prawdopodobnie zostanie ustawiony na ApplicationPoolIdentity . Kliknij przycisk (..) i wybierz NetworkService z rozwijanej listy.
Upewnij się także, że jeśli jest to aplikacja .NET 2.0, to nie odwołujesz się do frameworka 4.0 w swojej puli aplikacji.
źródło
Przed zmianą
web.config
pliku sprawdziłbym,.NET Framework
że używana wersja jest dokładnie (mam na myśli 4.5! = 4.5.2) taka sama w porównaniu do twoichGoDaddy
ustawień (ustawienia ASP.Net w twoimPlesk panel
). To powinno automatycznie zmienić plik web.config na poprawne środowisko.Zauważ też, że na razie (styczeń '16),
GoDaddy
działa zASP.Net 3.5
i4.5.2
. Aby używać4.5.2
z Visual Studio, musi to być2012
wersja nowsza, a jeśli nie 2015, musisz pobrać i zainstalować .NET Framework 4.5.2 Developer Package.Jeśli nadal nie działa, to tak, następnym krokiem powinno być włączenie szczegółowego raportowania błędów, aby można było go debugować.
źródło
Ostatnio miałem ten sam problem, miejsce na dysku było pełne na serwerze. Wyczyszczenie przestrzeni rozwiązało problem.
źródło
Spróbuj skompilować w trybie debugowania (w Visual Studio). Jeśli jesteś w trybie zwolnienia, wiele błędów przepisywania adresów URL nie będzie dostępnych.
Obraz pokazuje kombinację wyboru debugowania w Visual Studio
źródło