Ik gebruik Windows 7 Ultimate (64 bit) met Visual Studio 2010 RC. Ik heb onlangs besloten om VS mijn apps te laten uitvoeren / debuggen op IIS in plaats van op de bijbehorende ontwikkelserver.
Elke keer als ik een MVC-app probeer uit te voeren, krijg ik echter de volgende foutmelding:
HTTP-fout 403.14 – Verboden De webserver is geconfigureerd om de inhoud van deze map niet weer te geven. Gedetailleerd
Foutinformatie
Module DirectoryListingModule
Melding ExecuteRequestHandler
Handler StaticFile-fout
Code 0x00000000 aangevraagd
URL http://localhost:80/mySite/
Fysiek
Pad C:\myProject\mySite\Aanmeldmethode Anoniem aanmelden
Gebruiker Anoniem
Ik plaatste een default.aspx
bestand in de directory en ik kreeg de volgende foutmelding:
HTTP-fout 500.21 – Interne server
Foutafhandelaar
“PageHandlerFactory-Integrated” heeft een
slechte module “ManagedPipelineHandler” in
zijn modulelijst
Zijn er nog andere stappen die ik ben vergeten te nemen om dit werkend te krijgen?
Opmerkingen: ik heb IIS 7.5 geïnstalleerd na het installeren van VS 2010 RC. Ik heb de ingebouwde knop “Virtuele map maken” onder het tabblad “Web” in de “Eigenschappen” van het MVC-project in Visual Studio 2010 gebruikt. Ik heb ervoor gezorgd dat de toepassing de ASP.NET 4-app-pool gebruikt.
Hieronder staan de geïnstalleerde functies van IIS die ik heb.
Antwoord 1, autoriteit 100%
ASP.NET 4 is niet geregistreerd in IIS. Moest de volgende opdracht uitvoeren in de opdrachtregel/uitvoeren
32-bits (x86) Windows
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir
64-bits (x64) Windows
%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir
Opmerking uit de opmerking van David Murdoch:
Dat de .net-versie is gewijzigd
sinds dit antwoord is geplaatst. Rekening
in welke versie van het framework zit
de %windir%\Microsoft.NET\Framework64
directory en wijzig de opdracht
dienovereenkomstig voordat u gaat rennen (het is
momenteel v4.0.30319)
Antwoord 2, autoriteit 40%
Nog één ding om zeker te zijn, is de volgende set in uw web.config:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Antwoord 3, autoriteit 15%
Zorg ervoor dat je de volgende instellingen hebt in je web.config:
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
Betere oplossing:
Ook al werkt bovenstaande oplossing prima, het kan andere problemen veroorzaken omdat het al uw geregistreerde HTTP-modules uitvoert bij elk verzoek (zelfs bij elk verzoek van .jpg . gif .css .html .pdf enz.) en het is duidelijk verspilling van middelen. In plaats daarvan
<system.webServer>
<modules>
<remove name="UrlRoutingModule-4.0"/>
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" preCondition="" />
</modules>
</system.webServer>
Zorg ervoor dat het preCondition-kenmerk leeg is, zodat het op alle verzoeken wordt uitgevoerd. [Lees meer](http://www.britishdeveloper. co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html,”Lees originele post”)
Antwoord 4, autoriteit 8%
Een andere reden waarom iemand deze foutmelding kan krijgen, is als het bestand Global.asaxniet meer in de hoofdmap staat.
Antwoord 5, autoriteit 4%
Ik kreeg deze fout ook en ontdekte dat “HTTP-omleiding” niet was ingeschakeld in Windows Server. Deze blogpost wijst hier ook op: http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable-not-working-with-iis.aspx
Antwoord 6, autoriteit 3%
Lieve Jezus. Ik heb alle bovenstaande dingen geprobeerd (maar vond mijn instellingen identiek). NOG EEN ANDERE OPLOSSING als je problemen hebt:
http://support.microsoft.com/kb/980368
Probeer deze KB voor uw systeem te installeren. Als je 404’s ziet, kan dat zijn omdat je deze update niet hebt — en de isapi-module wordt gewoon niet gevonden en je kunt daar niet veel aan doen zonder dit!
Antwoord 7
U kunt ook de AppPoolnaar de Geïntegreerdemodus schakelen. Dank aan Michael Bianchi (https://stackoverflow.com/a/7956546/1143515), ik wil dat alleen maar onderstrepen .
Antwoord 8
Voor mij op een Azure Server 2012 R2 IIS 8.5 VM met een Asp.Net MVC 5-app (bin geïmplementeerde MVC 5) moest ik het volgende doen vanaf een verhoogde cmd-prompt, ook al had ik 4.5 al geïnstalleerd:
dism /online /enable-feature /featurename:IIS-ASPNET45
Bron: http://support.microsoft.com/kb/2736284
Ik heb ook brute force alle IIS-functies geïnstalleerd met de volgende PowerShell:
import-module servermanager
add-windowsfeature web-server -includeallsubfeature
Bron: http:/ /www.iis.net/learn/install/installing-iis-85/installing-iis-85-on-windows-server-2012-r2
Nu werkt mijn app.
Antwoord 9
We hadden een MVC-toepassing naar een nieuwe server verplaatst. .NET 4 en MVC 3 zijn geïnstalleerd, maar we krijgen nog steeds “Fout 403.14”. In dit geval betekende dit dat IIS niet begreep dat het te maken had met een MVC-toepassing, het was op zoek naar de standaardpagina.
De oplossing was simpel: HTTP Redirection was niet geïnstalleerd op de server.
Serverbeheer – Rollen – Webserver (IIS) – Rollenservices – HTTP-omleiding: niet geïnstalleerd. Geïnstalleerd, probleem opgelost.
Antwoord 10
Ook als uw app vooraf is gecompileerd, zou u
. moeten hebben
PrecompiledApp.config
in de hoofdmap van uw app, anders kunt u ook HTTP Error 403.14
krijgen.
Antwoord 11
Een andere mogelijke oplossing: als je je global.asax verplaatst, zorg er dan voor dat de opmaak verwijst naar de juiste MvcApplication-klasse. Hopelijk kan dit iemand in de toekomst redden.
Antwoord 12
Ik had de WebDeploy IIS-extensie gebruikt om mijn websites van IIS6 naar IIS7.5 te importeren, dus alle IIS-instellingen waren precies zoals ze waren in de productieomgeving. Nadat ik alle hier geboden oplossingen had geprobeerd, die allemaal niet voor mij werkten, moest ik gewoon de App Pool-instelling voor de website wijzigen van Klassiek in Geïntegreerd.
Antwoord 13
Ik ben plotseling hetzelfde 404.14-probleem tegengekomen. Eindelijk was het probleem verholpen door “precompileren tijdens publiceren” uit te schakelen in de instellingen van het publicatieprofiel.
Antwoord 14
Ik heb op een gegeven moment mijn standaardroute gewijzigd van:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
Aan:
routes.MapRoute(
"Default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index" }
Hierdoor kreeg ik je fout. Blij dat iemand routering noemde, want ik zou hier waarschijnlijk voor altijd mee bezig zijn geweest.
Antwoord 15
In My Case ASP.NET 4.5 is niet op de server geïnstalleerd, dus het installeren van ASP.NET 4.5 vaste het probleem op.
16
De UI is een beetje anders in de nieuwere versies van Windows Server. Hier moet je ASP.net inschakelen om het te laten werken op IIS
17
Een andere oplossing voor dit probleem toevoegen.
In My Global.Asax.cs-bestand had ik geprobeerde PHP-bestanden uitgeschakeld door de MVC-pijpleiding te worden geconsumeerd met behulp van het volgende:
routes.IgnoreRoute( "{*php}" );
Ik had deze eerder gedaan in een MVC2-project en het werkte prima, maar het doen in mijn MVC 3-app veroorzaakte het probleem dat hierboven is gemeld.
18
Let op voor Windows 8-gebruikers U moet Windows-componenten toevoegen / verwijderen en de versie van .NET Reboot verwijderen en opnieuw installeren om het te registreren met IIS. Ik neem aan dat dit gebeurt als je .NET 4,5 van visuele studio krijgt en IIS achteraf installeert.
19
Dit werkte voor mij en het kan nuttig zijn voor een andere.
Misschien zijn alle vereiste componenten niet aanwezig of / en niet allemaal correct geregistreerd. Om dit op te lossen, probeer dan alle opties binnen het bedieningspaneel – & GT uit te schakelen; Draai Windows-functies aan of uit – & GT; Internetinformatiediensten – & GT; World Wide Web Services – & GT; Toepassingsontwikkelfuncties, schakel alle opties uit en controleer het opnieuw en reset het IIS en controleer of het probleem is opgelost.
20
Als u IIS 8.5 gebruikt op Windows 8 of Server 2012, kunt u merken dat het uitvoeren van MVC 4/5 (.net 4.5) niet werkt in een virtuele map. Als u een lokale hosting-invoer in het hostbestand maakt om terug te keren naar uw lokale computer en vervolgens een nieuwe lokale IIS-website naar die map op te wijzen (met de bijpassende hostheaderinvoer) vindt u dat het dan werkt.
21
Voor mij was de oplossing om het Nuget-pakket Microsoft.aspnet.webpages (plus zijn scheermes- en infrastructuurafhankelijkheden) aan mijn webproject toe te voegen.
Infrastructuur moest krachtig worden geïnstalleerd omdat het in het begin niet als referentie werd toegevoegd.
22
In mijn zaak .NET CRL-versie in applicatiepool werd Prppertires ingesteld op geen beheerde code (weet niet waarom).
Het instellen op .NET CRL-versie V4.0.30319 opgelost het probleem.