ASP.NET MVC2 / 3中“runAllManagedModulesForAllRequests”的正确用法是什么?

我已经阅读了<system.WebServer> runAllManagedModulesForAllRequests <system.WebServer> modules部分中关于使用runAllManagedModulesForAllRequests各种post和问题,我担心我错误地使用了这个设置。

我的所有ASP.NET MVC应用程序都是使用.NET Framework 4.0和MVC2编写的,另外我们还有一个使用MVC3的应用程序的testing版。

这些应用程序被部署到运行Windows 2008R2 / IIS7.5的服务器上。 这些站点被configuration为在Integrated Pipeline / .NET 4.0应用程序池中运行。

如果我设置runAllManagedModulesForAllRequests="false"那么我得到一个HTTP错误403.14 – 来自IIS的禁止错误。 如果我把这个设置为true,那么一切都很好。

但是, 这篇文章build议这是一个不好的事情和一个修复:

使MVC路由工作时不要使用runAllManagedModulesForAllRequests =“true”

这真的很糟糕,我应该遵循这个build议吗?

有多糟糕取决于网站的stream量,如果你正在一个高stream量的网站上工作,我会说不要使用它,并删除不需要的模块。