什么是托管模块?

Pr0*_*r0n 6 .net iis asp.net-mvc

我最近一直在推动一些ASP.NET MVC 3和4站点到IIS 7并且遇到了重大问题.通常,修复方法是将以下内容包含在Web.Config中

<system.webServer>
   <httpErrors errorMode="Detailed" />
   <asp scriptErrorSentToBrowser="true"/>
   <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么?什么是托管模块?它们如何与ASP.NET MVC/C#一起使用?

编辑:经过进一步测试后,我发现Server 2008 R2和IIS 7.5上不存在此问题,但问题仍然存在,什么是托管模块?如果我在代码中使用一个模块,我怎么知道?

McG*_*gle 5

模块是一个ASP.Net组件,插入到请求管道的某个点; 有许多"官方"模块,虽然你也可以编写自己的代码.

IIS列出模块

如您所见,模块执行各种功能,包括输出缓存,各种授权和身份验证等等.


最好不要运行所有托管模块 ; 相反,如果可以的话,找出给定应用程序或平台需要的模块.对于ASP.Net MVC,这可能是路由模块:System.Web.Routing.UrlRoutingModule.