ExtensionlessUrlHandler-Integrated-4.0 и встроенная управляемая ошибка режима конвейера

В VS2013 проекта VS2013 я изменил приложение ASP.NET Web API для запуска в IIS из IIS EXPRESS на том же компьютере. Он работал в IIS Express но я не могу заставить его работать в IIS без этой ошибки об ExtensionlessUrlHandler-Integrated-4.0 и An ASP.NET setting has been detected that does not apply in Integrated managed pipeline mode.

Я пробовал все в сообщениях ниже, но ничего не работает, чтобы остановить эту ошибку, за исключением изменения пула приложений от Integrated to Classic. Этот параметр не работает либо потому, что приносит больше ошибок.

Обнаружен параметр ASP.NET, который не применяется в режиме интегрированного управляемого конвейера

WebDAV и WebAPI вместе вызывают ошибку: обработчик "ExtensionlessUrlHandler-Integrated-4.0" имеет плохой модуль "ManagedPipelineHandler" в своем списке модулей

Обнаружен параметр ASP.NET, который не применяется в режиме интегрированного управляемого конвейера

Обработчик "ExtensionlessUrlHandler-Integrated-4.0" имеет плохой модуль "ManagedPipelineHandler" в своем списке модулей

Я использую VS 2013, ASP.NET 4.5.1, IIS 7.5 и работает на Windows Server 2008 R2 Standard

Это мои system.web web.config system.web и webserver

<system.web>    
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5" />
    <customErrors mode="Off" />  
</system.web>
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <modules runAllManagedModulesForAllRequests="false">
        <remove name="WebDAVModule" />
    </modules>
    <handlers>
        <remove name="WebDAV" />
        <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>
</system.webServer>

Это ошибка, возвращенная

Server Error in Application "DEFAULT WEB SITE"
Internet Information Services 7.5
Error Summary 
HTTP Error 500.24 - Internal Server Error

An ASP.NET setting has been detected that does not apply in 
Integrated managed pipeline mode.

Detailed Error Information 
ModuleConfigurationValidationModule NotificationBeginRequest HandlerExtensionlessUrlHandler-Integrated-4.0 
Error Code0x80070032 
Requested URL http://localhost:80/Token 
Physical Path C:\inetpub\wwwroot\Token 
Logon Method Not yet determined 
Logon User Not yet determined 
Failed Request 

Tracing Log Directory C:\inetpub\logs\FailedReqLogFiles 
Most likely causes: system.web/[email protected] is set to true.

Things you can try: If the application supports it, disable client impersonation.
If you are certain that it is OK to ignore this error, it can 
be disabled by setting system.webServer/[email protected] to false.

Move this application to an application pool using Classic .NET mode 
- for example, %SystemRoot%\system32\inetsrv\appcmd set app "Default Web Site/" /applicationPool:"Classic .NET AppPool"

(You can set "Classic .NET AppPool" to the name of another application pool running in Classic managed pipeline mode) 
+1
источник поделиться
1 ответ

Информация в ссылках по моему вопросу работала. конкретно

<validation validateIntegratedModeConfiguration="false" />

это

<remove name="UrlRoutingModule-4.0" />
<add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="managedHandler" />

и это

<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />

Я также открыл Configuration Editor в IIS для сайта и изменил validateIntegratedModeConfiguration и runManagedModulesForWebDAVRequests на false

Было что-то еще, что мешало мне узнать, что это работает. Я использую членство ASP.NET Web API для аутентификации с использованием отдельных учетных записей, а когда я вызываю /Token для входа в систему, он собирается на веб-сайт root, а мое приложение находится в виртуальном каталоге. Когда этот вызов был сделан, он поднимал Integrated managed pipeline mode error. Я создал новый сайт в IIS для приложения вместо использования виртуального каталога. Там может быть способ заставить его работать, используя виртуальный каталог, но это было на пути к этому.

+2
источник

Связанные вопросы


Похожие вопросы

Посмотрите другие вопросы по меткам или Задайте вопрос