2014-09-05 4 views
0

Я получаю сообщение об ошибке при запуске приложения.Ошибка при работе с HTTP-модулем - обнаружен параметр ASP.NET, который не применяется в режиме интегрированного управляемого конвейера

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

Я создал модуль HTTP, который считывал информацию из заголовка запроса и записывал данные в файлы cookie. Вот код.

namespace My.Web 
{ 
    public class UserIdModule : IHttpModule 
    { 
     private HttpApplication httpApp; 

     public void Init(HttpApplication application) 
     { 
      application.BeginRequest += (new EventHandler(this.Application_BeginRequest)); 
     } 


     private void Application_BeginRequest(Object source, EventArgs e) 
     { 
      // Create HttpApplication and HttpContext objects to access 
      // request and response properties. 
      HttpApplication application = (HttpApplication)source; 
      HttpContext context = application.Context; 

      //Read header 
      string userId = context.Request.Headers["user_id"]; 

      if (string.IsNullOrEmpty(userId)) 
      { 
       userId = "guest"; 
      } 

      //Create and write cookie 
      HttpCookie userCookie = new HttpCookie("userId", userId); 
      userCookie.Expires = DateTime.Now.AddYears(5); 
      context.Response.Cookies.Add(userCookie); 
     } 

     public void Dispose() { } 
    } 
} 

В моей web.config

<configuration> 
    <system.webServer> 
    <staticContent> 
     <mimeMap fileExtension=".*" mimeType="application/octet-stream" /> 
    </staticContent> 
    <!-- To register the module for IIS 6.0 and IIS 7.0 running in Classic mode --> 
    <modules> 
     <add name="UserIdModule" type="UserIdModule"/> 
    </modules> 
    </system.webServer> 
    <system.web> 
    <compilation targetFramework="4.5" /> 
    <httpRuntime targetFramework="4.5" /> 
    <!-- To register the module for IIS 7.0 running in Integrated mode --> 
    <httpModules> 
     <add name="UserIdModule" type="UserIdModule"/> 
    </httpModules> 
    </system.web> 
</configuration> 

Это скриншот ошибки: enter image description here

+0

Проверьте эти http://stackoverflow.com/questions/7370513/http-error-500-22-internal-server-error-an-asp-net -setting-has-detected, http://stackoverflow.com/questions/4209999/an-asp-net-setting-has-been-detected-that-does-not-apply-in-integrated-managed-p – malkam

ответ

0

Я думаю, что вы можете иметь Интегральный и классические режимы обратной - по крайней мере, кажется, что путь из ваших комментариев в файле конфигурации.

system.web предназначен для более старого классического режима и system.webserver для интегрированного режима. См. Следующие SO answer для справки.

Если у вас есть некоторые параметры конфигурации в одном, который обычно принадлежит другому, я мог видеть, что вы получаете эту ошибку.

0

ли IIS 7.5 вы можете попробовать

<system.webServer> 
    <modules> 
     <add name="UserIdModule" type="My.Web.UserIdModule"/> 
    </modules> 
</system.webServer> 

 Смежные вопросы

  • Нет связанных вопросов^_^