ASP.NET: błąd HTTP 500.19 - wewnętrzny błąd serwera 0x8007000d

115

Replikuję wdrażanie aplikacji sieci Web i znalazłem kilka problemów związanych z HTTP Error 500.19. Mój komputer działa pod kontrolą systemu Windows 7, podczas gdy w fazie rozwoju używany jest system Windows 8 . Opracowujemy naszą aplikację internetową przy użyciu programu Visual Studio 2010 .

Najpierw dostałem kod błędu 0x80070021, podobny do zamieszczonego tutaj . Aktualizuję plik web.config zgodnie z zaakceptowaną odpowiedzią, a następnie otrzymałem następujący kod błędu (podobny do zamieszczonego tutaj ).

HTTP Error 500.19 - Internal Server Error
Error Code 0x8007000d
Config Source -1: 0:

Zapoznałem się z definicją symptomów na stronie pomocy Microsoft i przyczyną błędu jest:

Ten problem występuje, ponieważ plik ApplicationHost.config lub plik Web.config zawiera zniekształcony element XML.

a rozwiązaniem jest

Usuń zniekształcony element XML z pliku ApplicationHost.config lub z pliku Web.config.

Jednak plik web.config, którego użyłem, działa doskonale w oryginalnym środowisku programistycznym.

Oto co sprawdziłem i wypróbowałem do tej pory:

  1. Zainstaluj ASP.NET, wywołując aspnet_regiis -i
  2. Ustaw moją aplikację tak, aby korzystała z innej puli aplikacji (ASP.NET v4.0, .NET v4 itp.)
  3. Plik ApplicationHost.config nadal używa domyślnego z systemu Windows 7.

To jest część mojego Web.Config

<system.webServer>
    <section name="handlers" overrideModeDefault="Allow" /> 
    <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="true">
    </modules>
    <handlers>
        <remove name="UrlRoutingHandler" />
        <add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    </handlers>
    <urlCompression doStaticCompression="true" doDynamicCompression="false"></urlCompression>
    <directoryBrowse enabled="true" />
    <defaultDocument>
        <files>
            <add value="Logon.aspx" />
        </files>
    </defaultDocument>
</system.webServer>

Przeczytałem podobne / duplikaty / zamknięte posty (około 13) postów w stackoverflow, wypróbowałem wszystkie oprócz odpowiedzi związanej z Ajaxem (czy jest to powiązane) i nadal nie mam pojęcia, na czym polega błąd.

Czy ktoś może jak naprawić ten błąd? (Jeśli to możliwe, należy sprawdzić obszerną listę rzeczy, abyśmy mogli zmniejszyć liczbę podobnych postów, takich jak ten). Jestem gotów podać więcej szczegółów.

David
źródło
Właśnie rozwiązałem ten problem. Chociaż błąd wskazuje na plik web.config, może to być również problem z plikiem appsettings.config. Jeśli któryś z nich jest zniekształcony, pojawi się ten sam błąd.
PGardockiDotNet

Odpowiedzi:

273

Błąd 0x8007000d oznacza, że brakuje modułu przepisywania adresu URL (przywoływanego w web.config) lub nie zainstalowano odpowiedniej wersji.

Wystarczy zainstalować moduł przepisywania adresów URL za pomocą instalatora platformy internetowej.

Polecam sprawdzić wszystkie zależności z web.config i je zainstalować.

Tomas Kubes
źródło
23
Chciałbym, żeby IIS dawał bardziej opisowy komunikat o błędzie, gdyby powiedział „Nierozpoznany moduł: UrlRewritingNet”, zaoszczędziłbym dwie godziny dzisiejszego ranka. +1 za zakończenie mojego bólu :)
AlexFoxGill
17
Dzięki. Dodano „Url Rewrite 2.0” za pośrednictwem Instalatora platformy internetowej, a następnie naprawiono.
Cihan Yakar
Miałem ten sam problem, spędziłem całe wieki na przeglądaniu „uszkodzonych” plików XML, dopóki nie natknąłem się na ten komentarz, w którym wspomina się o module przepisywania adresów URL. To wystarczyło, by przypomnieć sobie, jak rozwiązałem dokładnie to samo kilka miesięcy temu! (Tym razem to zapisuję) Dzięki!
anton
4
Dobrze, nawet platforma internetowa powiedziała, że ​​została "zainstalowana", jednak nie pokazała się w IIS, idę tutaj iis.net/downloads/microsoft/url-rewrite , pobieram odpowiednią wersję, usuwam aktualną i ponownie zainstaluj, zamknij IIS i uruchom ponownie IIS, teraz widzę „Ponowne zapisywanie adresu URL”.
Box Bardzo
Wielkie dzięki. Ta odpowiedź uratowała mi dzień. Zainstalowałem „przepisywanie adresów URL” za pomocą instalatora platformy sieci Web na serwerze IIS 10, Windows 2016 i błąd zniknął.
Anil Gupta
34

Podczas próby skonfigurowania witryny internetowej .NET Core 1.0 otrzymałem ten błąd i wypróbowałem wszystko inne, co mogłem znaleźć, bez powodzenia, w tym sprawdzenie pliku web.config, uprawnienia IIS_IUSRS, moduł przepisywania adresu URL w usługach IIS itp. zainstalował DotNetCore.1.0.0-WindowsHosting.exe z tej strony: https://www.microsoft.com/net/download i od razu zaczął działać.

Konkretny link do pobrania: https://go.microsoft.com/fwlink/?LinkId=817246

Adrian Carr
źródło
4
Dzięki! To jest to, czego potrzebuję do moich podstawowych aplikacji. Ci, którzy chcą wiedzieć, jak hostować podstawowe witryny internetowe w iis, mogą przejść do docs.microsoft.com/en-us/aspnet/core/publishing/iis
muhihsan
1
Dotyczy to wszystkich wersji Core, a nie tylko 1.0. (Core musi być zainstalowany na serwerze.)
Patrick
1
To działa dla mnie po wypróbowaniu wszystkiego innego. Dzięki.
Andrew,
aby uzyskać najnowszą wersję, możesz przejść tutaj docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/…
Leonard AB
1
Dzięki za to mogłem go uruchomić, uruchamiając naprawę mojej instalacji DotNetCore.
Shane,
21

W moim przypadku, ponieważ ponownie zainstalowałem iis, musiałem zarejestrować iis w dot net 4 za pomocą tego polecenia:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
max
źródło
21

Zainstaluj przepisywanie adresu URL:

UPDATE - to jest teraz dostępne tutaj (i działa z IIS 7-10):

https://www.iis.net/downloads/microsoft/url-rewrite

Upewnij się, że masz ustawioną opcję „Dozwolone” dla serwera IIS:

wprowadź opis obrazu tutaj

Chris Halcrow
źródło
Dzięki za link! Zainstalowałem to z funkcji Dodaj / Usuń, ale to nie rozwiązało problemu. Tylko pobranie go z tego linku działało.
Luke
5

Trochę późno na imprezę tutaj, ale właśnie zmagałem się z dokładnie tym samym problemem (symptomy) i przeklinając brak szczegółowego raportowania błędów. Działało dobrze na maszynach z usługami IIS 8+, ale system Windows 7 otrzymał te natychmiastowe błędy HTTP 500.19. Dla mnie było to tak głupie, jak posiadanie nieobsługiwanego elementu konfiguracyjnego w pliku konfiguracyjnym:

 <applicationInitialization doAppInitAfterRestart="true">
  <add initializationPage="/" />
</applicationInitialization>

Więc podczas gdy uruchamianie starych plików web.config działało dobrze, po prostu je porównałem i zacząłem kroić na nowe bloki, aż strona zaczęła się ładować. Gdybym uznał to za odpowiedź, poszedłbym od razu tą drogą, ponieważ wiedziałem, że żadne z popularnych rozwiązań nie jest odpowiednie. Więc proszę bardzo :)

barbatron
źródło
To był mój problem. Dzięki!
Erik W
Ja też miałem ten problem. Dzięki!
José Margaça Lopes
4

W moim przypadku (.Net Core Web API) dla tego problemu Błąd HTTP 500.19 - Wewnętrzny błąd serwera 0x8007000d

Pierwsze pobranie dotnet-hosting-3.0.0-preview5-19227-01-win (.Net Core 3) lub dotnetcore 2 hasting windows

https://download.visualstudio.microsoft.com/download/pr/5bed16f2-fd1a-4027-bee3-3d6a1b5844cc/dd22ca2820fadb57fd5378e1763d27cd/dotnet-hosting-3.1.4-win.exe

Każda aplikacja .net core 3.1, zarówno kątowa, jak i aplikacja MVC, będzie tego potrzebować.

Po drugie zainstaluj go jako administrator Otwórz cmd jako administrator, wpisz iisreset, naciśnij enter

Odśwież swoją aplikację localhost

Pozdrawiam MMTofighi z Iranu

persi man
źródło
1

Problem rozwiązany. Oto kroki, które próbowałem:

  • Włącz aplikację 32-bitową w usługach IIS -> Pula aplikacji -> Ustawienia zaawansowane
  • Skopiuj plik System.EnterpriseServices.dll i System.EnterpriseServices.Wrapper.dll z C: \ Windows \ Microsoft.NET \ Framework \ v2.0.50727 do folderu bin aplikacji
  • Dodawaj komentarze / usuwaj komentarze do sekcji w pliku web.config i znajdź ten problem związany z odnośną biblioteką DLL.

Konfiguracja, którą skomentowałem poprzednia, którą dodałem:

<section name="handlers" overrideModeDefault="Allow" /> 
<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Allow"/>
  • Dodaj wymaganą bibliotekę FasterFlect.DLL używaną przez Combres.DLL v2.1.0.0 do folderu bin aplikacji (należy pobrać pełny plik ZIP z Combres codeplex, ponieważ wymaganej biblioteki DLL FastFlect V2.0.3732.24338 nie można znaleźć w programie FastFlect codeplex) i innych Biblioteki DLL. Dla wygody użyj pełnej biblioteki Combres.DLL (1,3 MB)
  • Sprawdź, czy wersje DLL i tokeny klucza publicznego są poprawnie skonfigurowane w web.config za pomocą narzędzia, np. .NET Reflector
David
źródło
1

Rozumiem, że ten błąd może wystąpić z wielu różnych powodów. W moim przypadku było to spowodowane tym, że odinstalowałem usługę WSUS z ról serwera i cały IIS przestał działać. Po przeprowadzeniu kilku badań odkryłem, że odinstalowanie WSUS usuwa kilka bibliotek DLL, które są używane do kompresji http. Ponieważ brakowało tych bibliotek dll, a IIS nadal ich szukał, zresetowałem za pomocą następującego polecenia w CMD:

appcmd set config -section:system.webServer/httpCompression /-[name='xpress']

Bingo! Problem został rozwiązany. Nie zapomnij uruchomić go jako administrator. Może być również konieczne wykonanie „iisreset”. W razie czego.

Mam nadzieję, że to pomaga innym. Twoje zdrowie

Sabbir Hassan
źródło
1

Włączam zaawansowaną usługę .Net Framework 3.5 i 4.5 w Control Panel-> Programs and Features->. To Turn Windows features on or offdziała dla mnie.

Ahmadreza Farrokhnejad
źródło
1

Naprawa pakietu hostingowego DotNetCore załatwiła mi sprawę. : /

IAmCoder
źródło
0

Miałem ten problem z zupełnie nową usługą internetową. Rozwiązano to, dodając dostęp tylko do odczytu dla wszystkich na Właściwości-> Zabezpieczenia dla folderu, w którym znajdowała się usługa.

aherocalledFrog
źródło
-1

Dla mnie chodziło o skonfigurowanie mojego serwera internetowego, aby korzystał z najnowszych i najlepszych technologii do obsługi mojej aplikacji ASP.NET 5!

Poniższy adres URL zawiera wszystkie potrzebne wskazówki:

https://docs.asp.net/en/1.0.0-rc1/publishing/iis-with-msdeploy.html

Mam nadzieję że to pomoże :)

Jeff Moretti
źródło
2
Czy możesz opisać niektóre ważne punkty zawarte w linku? W ten sposób odpowiedź może pozostać przydatna, jeśli link zostanie uszkodzony lub niedostępny.
mhatch