7

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

<system.webServer>
   <httpErrors errorMode="Detailed" />
   <asp scriptErrorSentToBrowser="true"/>
   <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>

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

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

4

1 回答 1

5

模块是插入到请求管道的某个点的 ASP.Net 组件;有许多“官方”模块,尽管您也可以编写自己的.

IIS 模块列表

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


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

于 2012-12-08T08:11:34.233 回答