IIS 8 asp.net mvc HTTP-Fehler 500.19


15

Hallo, ich habe gerade den Server für mein asp.net mvc-Framework umgezogen. aber jetzt bekomme ich folgende fehlermeldung und um ehrlich zu sein weiß ich jetzt was falsch ist?

Modul IIS Web Core

Benachrichtigung BeginRequest

Handler Noch nicht festgelegt

Fehlercode 0x80070021

Konfigurationsfehler Dieser Konfigurationsabschnitt kann unter diesem Pfad nicht verwendet werden. Dies geschieht, wenn der Abschnitt auf übergeordneter Ebene gesperrt ist. Das Sperren ist entweder standardmäßig (overrideModeDefault = "Deny") oder wird explizit durch ein Standort-Tag mit overrideMode = "Deny" oder dem Legacy-Wert allowOverride = "false" festgelegt.

Bildbeschreibung hier eingeben

<?xml version="1.0" encoding="utf-8"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=152368
  -->
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="CosplayConnectionString" connectionString="Data Source=sogaard.us;Initial Catalog=NewCosplay;Integrated Security=False;Persist Security Info=True;User ID=XXXXXX;Password=XXXXXX;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
  </connectionStrings>
  <appSettings>
    <add key="MaxImageSize" value="5242880" />
    <add key="webpages:Version" value="2.0.0.0" />
    <add key="webpages:Enabled" value="false" />
    <add key="PreserveLoginUrl" value="true" />
    <add key="ClientValidationEnabled" value="true" />
    <add key="UnobtrusiveJavaScriptEnabled" value="true" />
    <add key="RouteDebugger:Enabled" value="true" />
    <add key="RecaptchaPrivateKey" value="6LeAsuASAAAAAKigNk4qtA5iS_E0RPmYTcQM9U4Z" />
    <add key="RecaptchaPublicKey" value="6LeAsuASAAAAAO8HMUg9HKihCMRx0s53Dazbpoag" />
  </appSettings>
  <system.web>
    <customErrors mode="Off" />
    <httpRuntime targetFramework="4.5" />
    <compilation debug="true" targetFramework="4.5" />
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login" timeout="2880" />
    </authentication>
    <pages>
      <namespaces>
        <add namespace="System.Web.Helpers" />
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Optimization" />
        <add namespace="System.Web.Routing" />
        <add namespace="System.Web.WebPages" />
        <add namespace="Recaptcha" />
      </namespaces>
    </pages>
    <profile defaultProvider="DefaultProfileProvider">
      <providers>
        <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" />
      </providers>
    </profile>
    <membership defaultProvider="DefaultMembershipProvider">
      <providers>
        <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
      </providers>
    </membership>
    <roleManager defaultProvider="CosplayRoleProvider" enabled="true" cacheRolesInCookie="true">
      <providers>
        <clear />
        <add name="CosplayRoleProvider" type="Sogaard.us.Cosplay.Library.CosplayRoleProvider, Sogaard.us.Cosplay, Version=1.0.0.0, Culture=neutral" connectionStringName="DefaultConnection" applicationname="Cosplay" />
      </providers>
    </roleManager>
    <sessionState mode="InProc" customProvider="DefaultSessionProvider">
      <providers>
        <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
      </providers>
    </sessionState>
    <httpModules></httpModules>
    <httpHandlers></httpHandlers>
  </system.web>
  <system.webServer>
    <httpErrors errorMode="Detailed" />
    <asp scriptErrorSentToBrowser="true" />
    <handlers>
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>
    <modules runAllManagedModulesForAllRequests="true"></modules>
    <validation validateIntegratedModeConfiguration="false" />
  </system.webServer>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Helpers" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="System.Web.WebPages" publicKeyToken="31bf3856ad364e35" />
        <bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="2.0.0.0" />
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="RouteMagic" publicKeyToken="84b59be021aa4cee" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-0.2.2.2" newVersion="0.2.2.2" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
  </entityFramework>
</configuration>

Hast du das jemals gelöst? Ich habe das gleiche Problem
rik.vanmechelen

Antworten:


36

Wir hatten den gleichen Fehler auf einem brandneuen Server.

Der Grund war nicht die standardmäßige IIS-Sicherheitsrichtlinie, die in gespeichert wurde applicationHost.config, wie in der anderen Antwort vorgeschlagen (obwohl wir dies überprüft haben). Der Grund war, dass wir IIS ohne Unterstützung für ASP.NET (eine ASP.NET 4.5-Rolle) installiert haben!

Als wir die fehlende Unterstützung für ASP.NET installiert haben, wurde unsere Anwendung ohne Änderungen in der Konfiguration gestartet.

Fazit:

Stellen Sie sicher, dass Sie die ASP.NET-Rolle zusammen mit IIS installiert haben, wenn dieser Fehler auftritt.


So installieren Sie die ASP.NET-Rolle in Windows Server:

  1. Öffnen Sie den Assistenten zum Hinzufügen von Rollen und Features
  2. Überprüfen Sie den ASP.NET-Eintrag [your_version] unter Web Server (IIS)-> Web Server->Application Development

So installieren Sie die ASP.NET-Rolle in einem Windows-Client:

  1. Öffnen Sie den Assistenten zum Aktivieren oder Deaktivieren von Windows-Funktionen
  2. Überprüfen Sie den ASP.NET-Eintrag [your_version] unter Internet Information Services-> World Wide Web Services->Application Development Features

Danke, ich bin froh, dass ich das gefunden habe. Nach der Installation der Rollendienste musste ich ASP.NET v4.0.30319 in der Funktion für ISAPI- und CGI-Einschränkungen aktivieren.
Donnerstag,

0

Nun, es sagt dir, was los ist. Der system.webServer/HandlersAbschnitt wurde an einer anderen Stelle gesperrt, was bedeutet, dass Sie ihn in der web.configDatei auf der aktuellen Ebene (wahrscheinlich auf der Website) nicht überschreiben können .

Entweder entfernen:

<handlers>
   <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
   <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
   <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
   <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
   <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
   <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>

aus deiner web.configAkte

Oder finden Sie heraus, wo es gesperrt wurde, und ändern Sie es.
Es ist wahrscheinlich in der applicationHost.configDatei gesperrt . Es ist hier zu finden: %windir%\system32\inetsrv\config\. Öffnen Sie es mit einem Texteditor und suchen Sie nach einer Zeile wie

<section name="handlers" overrideModeDefault="Deny" />

Ändern Sie das overrideModeDefaultAttribut in Zulassen


Alternativ können Sie appcmd.exeden Abschnitt für eine bestimmte Site oder Anwendung wie folgt entsperren:

appcmd.exe unlock config "WebSiteName/app" -section:system.webServer/Handlers

Dabei ist "WebSiteName" der Name der Website und "/ app" der Pfad zu Ihrer Anwendung. So entsperren Sie es für die gesamte Website:

appcmd.exe unlock config "WebSiteName" -section:system.webServer/Handlers

Ich erhalte die gleiche Fehlermeldung, wenn ich die Datei appcmd.exe C: \ Windows \ System32 \ inetsrv> appcmd.exe verwende Dateiname: \\? \ C: \ Server \ Kasper \ Web \ test.cosplay.dk \ web.config Zeilennummer: 71 Beschreibung: Dieser Konfigurationsabschnitt kann unter diesem Pfad nicht verwendet werden Die Sperre ist entweder standardmäßig (ov errideModeDefault = "Deny") oder wird explizit durch ein Standort-Tag mit overrideMode = "Deny" oder dem Legacy-Wert allowOverride = "false" festgelegt.)
Androme

Dies ist jedoch ein komplett neu installierter Server, und dies ist die erste Website, die darauf basiert. Wie kann etwas anderes die Handler sperren?
Androme

Dann entfernen Sie den HandlersAbschnitt. Es könnte standardmäßig gesperrt sein. Haben Sie die Site von einer Win2008-Box migriert?
Mathias R. Jessen

Ja Win2008R2, wenn ich die Handler und Module entferne, wird MVC nicht funktionieren! Ich habe die es akzeptieren die Handler mit dem Befehl, aber Module werden nicht folgen :(
Androme
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.