Erreur HTTP IIS 8 asp.net mvc 500.19

15

Bonjour je viens de déplacer le serveur, pour mon framework mvc asp.net. mais maintenant je reçois le message d'erreur suivant, et pour être honnête, je sais maintenant ce qui ne va pas?

Module IIS Web Core

Notification BeginRequest

Gestionnaire Pas encore déterminé

Code d'erreur 0x80070021

Erreur de configuration Cette section de configuration ne peut pas être utilisée sur ce chemin. Cela se produit lorsque la section est verrouillée au niveau parent. Le verrouillage est soit par défaut (overrideModeDefault = "Deny"), soit défini explicitement par une balise d'emplacement avec overrideMode = "Deny" ou l'héritage allowOverride = "false".

entrez la description de l'image ici

<?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>
Androme
la source
Avez-vous déjà résolu cela? J'ai le même problème
rik.vanmechelen

Réponses:

36

Nous avons eu la même erreur sur un tout nouveau serveur.

La raison n'était pas la stratégie de sécurité IIS par défaut, stockée dans applicationHost.config, comme suggéré par l'autre réponse (bien que nous ayons vérifié cela). La raison en était que nous avons installé IIS sans prise en charge d'ASP.NET (un rôle ASP.NET 4.5)!

Lorsque nous avons installé le support manquant pour ASP.NET, notre application vient de démarrer sans aucune modification de configuration.

Conclusion:

Vérifiez que le rôle ASP.NET est installé avec IIS si vous obtenez cette erreur.


Pour installer le rôle ASP.NET dans Windows Server:

  1. Ouvrez l'assistant d'ajout de rôles et de fonctionnalités
  2. Vérifiez l'entrée ASP.NET [votre_version] sous Web Server (IIS)-> Web Server->Application Development

Pour installer le rôle ASP.NET dans un client Windows:

  1. Ouvrir Activer ou désactiver les fonctionnalités de Windows
  2. Vérifiez l'entrée ASP.NET [votre_version] sous Internet Information Services-> World Wide Web Services->Application Development Features
tomash
la source
Merci, content d'avoir trouvé ça. Après avoir installé les services de rôle, j'ai dû activer ASP.NET v4.0.30319 dans la fonction de restrictions ISAPI et CGI.
cdonner
0

Eh bien, cela vous dit ce qui ne va pas. La system.webServer/Handlerssection a été verrouillée ailleurs, ce qui signifie que vous ne pouvez pas la remplacer dans le web.configfichier au niveau actuel (probablement le site Web).

Soit supprimer:

<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>

de votre web.configdossier

Ou découvrez où il a été verrouillé et changez-le.
Il est probablement verrouillé dans le applicationHost.configfichier. Il peut être trouvé ici: %windir%\system32\inetsrv\config\. Ouvrez-le avec un éditeur de texte et recherchez une ligne comme

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

Modifiez l' overrideModeDefaultattribut sur Autoriser


Alternativement, vous pouvez utiliser appcmd.exepour déverrouiller la section pour un site ou une application spécifique, comme ceci:

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

Où "WebSiteName" est le nom du site Web et "/ app" est le chemin d'accès à votre application. Pour le déverrouiller pour l'ensemble du site Web:

appcmd.exe unlock config "WebSiteName" -section:system.webServer/Handlers
Mathias R. Jessen
la source
J'obtiens le même message lorsque j'utilise l'appcmd.exe C: \ Windows \ System32 \ inetsrv> appcmd.exe unlock config "test.cosplay.dk/app" -sect ion: system.webServer / Handlers ERREUR (message: erreur de configuration Nom de fichier: \\? \ C: \ Server \ Kasper \ Web \ test.cosplay.dk \ web.config Numéro de ligne: 71 Description: cette section de configuration ne peut pas être utilisée sur ce chemin. Cela se produit lorsque la section est verrouillée sur un niveau parent. Le verrouillage est soit par défaut (ov errideModeDefault = "Deny"), soit défini explicitement par une balise d'emplacement avec overrideMode = "Deny" ou l'héritage allowOverride = "false"..)
Androme
Mais c'est un serveur installé complètement nouveau, et c'est le premier site Web qui y est consacré, comment autre chose peut-il verrouiller les gestionnaires?
Androme
Retirez ensuite la Handlerssection. Il pourrait être verrouillé par défaut. Avez-vous migré le site depuis une box Win2008?
Mathias R. Jessen
Oui Win2008R2, si je retire les handelers et les modules, mvc ne fonctionnera pas! j'ai obtenu qu'il accepte les gestionnaires avec la commande, mais les modules ne suivront pas :(
Androme