Foutbericht wanneer u een website bezoekt die wordt gehost op IIS 7.0 of hoger: HTTP-fout 404.17 - Niet gevonden
Dit artikel helpt u bij het oplossen van het probleem HTTP-fout 404.17 - Niet gevonden wanneer u een website bezoekt die wordt gehost op Internet Information Services (IIS) 7.0 of hoger.
Oorspronkelijke productversie: Internet Information Services
Origineel KB-nummer: 2019689
Symptomen
U hebt een website die wordt gehost op IIS 7.0 of hoger. Wanneer u met een webbrowser naar dynamische inhoud op de website bladert, wordt mogelijk een foutbericht weergegeven dat er ongeveer als volgt uitziet:
Foutoverzicht
HTTP-fout 404.17 - Niet gevonden
De aangevraagde inhoud lijkt script te zijn en wordt niet geleverd door de statische bestandshandler.
Gedetailleerde foutinformatie:Module StaticFileModule
Notification ExecuteRequestHandler
Handler StaticFile
Foutcode 0x80070032Aangevraagde URL http://iisserver:80/page.aspx
Fysiek pad C:\inetpub\wwwroot\page.aspx
Aanmeldingsmethode Anoniem
Anonieme gebruiker aanmelden
Oorzaak
Deze fout treedt op omdat de HTTP-handler die is geconfigureerd voor het verwerken van de aanvraag, bepaalde voorwaarden heeft ingesteld, maar de groep toepassingen niet voldoet aan een aantal of alle van deze voorwaarden. Dit zorgt ervoor dat de statische bestandshandler wordt gebruikt om de aanvraag te verwerken. De verwerking van de aanvraag mislukt vervolgens en de status 404.17 wordt geretourneerd omdat de aanvraag voor een dynamische resource is en niet voor een statische.
Denk bijvoorbeeld aan de volgende handlertoewijzing:
<add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
In dit geval wordt een 404.17-fout geretourneerd als de *.aspx resource die wordt aangevraagd vanaf de site, wordt verwerkt in een toepassingsgroep die niet wordt uitgevoerd in Classic
de modus, niet 32-bits is of niet de 2.0-versie van de .NET Framework uitvoert. Als u wilt dat de resource in dit voorbeeld correct wordt uitgevoerd, moet aan alle drie de voorwaarden worden voldaan. De groep van toepassingen die als host fungeert voor deze resource moet worden geconfigureerd voor Classic
de modus, moet worden geconfigureerd voor het gebruik van de 2.0-versie van de .NET Framework en moet worden ingesteld voor 32-bits toepassingen.
Oplossing
U kunt dit probleem oplossen door de groep van toepassingen die als host fungeert voor de toepassing te configureren om te voldoen aan alle voorwaarden die voor de handler zijn ingesteld.
IIS-beheer openen
Vouw de computernaam uit en klik op Toepassingsgroepen in het linkerdeelvenster.
Markeer de groep van toepassingen die als host fungeert voor de resource in het middelste deelvenster.
Klik in het rechterdeelvenster op Geavanceerde instellingen...
Configureer in het dialoogvenster Geavanceerde instellingen onder de categorie (Algemeen) de volgende instellingen om aan de vereisten van de handler te voldoen:
- .NET Framework versie
- 32-bits toepassingen inschakelen
- Beheerde pijplijnmodus
Meer informatie
De informatie in deze sectie is bedoeld om te bepalen welke handlers zijn geconfigureerd voor de website en toepassing die in de fout worden vermeld, en om de voorwaarden te identificeren die voor die handler zijn geconfigureerd.
opdrachten Appcmd.exe
De volgende opdrachten kunnen worden gebruikt om de handlers te identificeren die zijn geconfigureerd voor de website die wordt vermeld in de uitvoer van de fout.
Groep van toepassingen weergeven
De volgende opdrachten laten zien hoe u kunt bepalen in welke groep van toepassingen de toepassing wordt uitgevoerd. Vervolgens worden de voorwaarden vermeld die voor die groep van toepassingen zijn geconfigureerd.
C:\Windows\System32\inetsrv>appcmd.exe list apps /site.name:"Default Web Site"
APP "Default Web Site/" (applicationPool:DefaultAppPool)
C:\Windows\System32\inetsrv>appcmd.exe list apppools
APPPOOL "DefaultAppPool" (MgdVersion:v2.0,MgdMode:Integrated,state:Started)
Lijsthandlers
Met deze opdracht worden de handlers uitgevoerd die zijn geconfigureerd voor de specifieke toepassing op de standaardwebsite.
C:\Windows\System32\inetsrv>appcmd.exe list config "Default Web Site/application" -section:handlers
<system.webServer>
<handlers accessPolicy="Read, Script">
<add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
<add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
</handlers>
</system.webServer>
In het geval van ASP.NET zijn er mogelijk veel handlers geconfigureerd voor een *.aspx-resource. In sommige gevallen hoeft de handler alleen maar te worden gewijzigd zodat deze overeenkomt met de groep van toepassingen waarin de toepassing wordt uitgevoerd. Hieronder vindt u een lijst met de verschillende ASP.NET 2.0-handlers met hun verschillende voorwaardeninstellingen.
ASP.NET 2.0 Geïntegreerde modus 32/64-bits handler
<add name="PageHandlerFactory-Integrated" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode" />
ASP.NET 2.0 klassieke modus 32-bits handler
<add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
ASP.NET 2.0 klassieke modus 64-bits handler
<add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
Stappen om te reproduceren
Maak een map met twee bestanden.
Test.aspx met de inhoud
<%Response.Write("Hello World")%>
Web.config met de inhoud:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <httpRedirect enabled="false" destination="http://TestSite" exactDestination="false" childOnly="false" httpResponseStatus="Permanent" /> <security> </security> <handlers> <clear/> <add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" /> <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" /> </handlers> </system.webServer> <system.web> <authentication mode="Windows"> <forms cookieless="UseCookies" /> </authentication> </system.web> </configuration>
Maak een TOEPASSING van IIS 7.0 of hoger die verwijst naar de map met deze twee bestanden.
Configureer de nieuwe toepassing om uit te voeren in een groep van toepassingen die is geconfigureerd voor de geïntegreerde modus.
Blader naar test.aspx.
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor