使用HTTP模块时出错 - 检测到的ASP.NET设置不适用于集成管理管道模式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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>
这是错误的屏幕截图:
答案
我认为您可能已经颠覆了集成模式和经典模式 - 至少从配置文件中的注释看起来是这样。
system.web用于较旧的Classic模式,system.webserver用于集成模式。请参阅以下SO answer以供参考。
如果你有一些配置设置通常属于另一个我可以看到你收到此错误。
另一答案
你可以试试IIS 7.5吗?
<system.webServer>
<modules>
<add name="UserIdModule" type="My.Web.UserIdModule"/>
</modules>
</system.webServer>
以上是关于使用HTTP模块时出错 - 检测到的ASP.NET设置不适用于集成管理管道模式的主要内容,如果未能解决你的问题,请参考以下文章
将正确的标头值发送到从角度 $http 到 asp.net webapi 的 Preflight 请求时出错
尝试在 ASP.Net MVC 网站中启用 CORS 时出错
尝试在 Plesk Onyx 17.8.11 上托管 ASP.NET 2.2 网站时出错 - HTTP 错误 500.0 - ANCM 进程内处理程序加载失败