IIS 8 asp.net mvc Ошибка HTTP 500.19


15

Здравствуйте, я только что переехал на сервер, для моего asp.net MVC Framework. но теперь я получаю следующее сообщение об ошибке, и если честно, теперь я знаю, что не так?

Модуль IIS Web Core

Уведомление BeginRequest

Обработчик еще не определен

Код ошибки 0x80070021

Ошибка конфигурации Этот раздел конфигурации не может использоваться по этому пути. Это происходит, когда раздел заблокирован на родительском уровне. Блокировка либо по умолчанию (overrideModeDefault = "Deny"), либо устанавливается явно с помощью тега местоположения с помощью overrideMode = "Deny" или устаревшего allowOverride = "false".

введите описание изображения здесь

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

Вы когда-нибудь решали это? У меня та же проблема
rik.vanmechelen

Ответы:


36

У нас была такая же ошибка на совершенно новом сервере.

Причиной была не политика безопасности IIS по умолчанию, которая была сохранена в applicationHost.configсоответствии с предложением другого ответа (хотя мы это проверили). Причина была в том, что мы установили IIS без поддержки ASP.NET (роль ASP.NET 4.5)!

Когда мы установили отсутствующую поддержку ASP.NET, наше приложение просто запустилось без каких-либо изменений в конфигурации.

Вывод:

Дважды проверьте, что у вас установлена ​​роль ASP.NET вместе с IIS, если вы получаете эту ошибку.


Чтобы установить роль ASP.NET в Windows Server:

  1. Откройте мастер добавления ролей и функций
  2. Проверьте запись ASP.NET [your_version] в Web Server (IIS)-> Web Server->Application Development

Чтобы установить роль ASP.NET в клиенте Windows:

  1. Мастер открытия и включения функций Windows
  2. Проверьте запись ASP.NET [your_version] в Internet Information Services-> World Wide Web Services->Application Development Features

Спасибо, рад, что нашел это. После установки служб ролей мне пришлось включить ASP.NET v4.0.30319 в функции ограничений ISAPI и CGI.
cdonner

0

Ну, это говорит вам, что не так. system.webServer/HandlersСекция была заблокирована где - то еще, а это означает , что вы не можете изменить его в web.configфайле на текущем уровне (возможно , веб - сайт).

Либо удалите:

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

из вашего web.configфайла

Или узнайте, где он был заблокирован, и измените его.
Вероятно, он заблокирован в applicationHost.configфайле. Его можно найти здесь: %windir%\system32\inetsrv\config\. Откройте его в текстовом редакторе и найдите строку вроде

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

Измените overrideModeDefaultатрибут на Разрешить


Кроме того, вы можете использовать, appcmd.exeчтобы разблокировать раздел для определенного сайта или приложения, например:

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

Где «WebSiteName» - это имя веб-сайта, а «/ app» - это путь к вашему приложению. Чтобы разблокировать его для всего веб-сайта:

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

Я получаю то же самое, когда использую appcmd.exe C: \ Windows \ System32 \ inetsrv> appcmd.exe, конфигурацию разблокировки "test.cosplay.dk/app" -sect ion: system.webServer / Handlers ERROR (сообщение: Ошибка конфигурации Имя файла: \\? \ C: \ Server \ Kasper \ Web \ test.cosplay.dk \ web.config Номер строки: 71 Описание: Этот раздел конфигурации нельзя использовать по этому пути. Это происходит, если раздел заблокирован на родительский уровень. Блокировка либо по умолчанию (ov errideModeDefault = "Deny"), либо устанавливается явно с помощью тега местоположения с помощью overrideMode = "Deny" или устаревшего allowOverride = "false".)
Androme

Но это совершенно новый установленный сервер, и это первый веб-сайт, который размещен на нем, как что-то еще может заблокировать гендлеров?
Андром

Затем удалите Handlersраздел. Это может быть заблокировано по умолчанию. Вы перенесли сайт из коробки Win2008?
Матиас Р. Ессен

Да Win2008R2, если я уберу гендлеров и модули, mvc не будет работать! я получил это принять обработчики с командой, но модули не будут следовать :(
Androme
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.