Asp.net mvc 4 为什么在VS2012 MVC4项目框架中默认启用runAllManagedModulesForAllRequests

Asp.net mvc 4 为什么在VS2012 MVC4项目框架中默认启用runAllManagedModulesForAllRequests,asp.net-mvc-4,Asp.net Mvc 4,我注意到在VS2012 MVC4项目框架中,runAllManagedModulesForAllRequests默认为true。有人知道为什么吗?什么功能需要此设置?只有在IIS中以集成管道模式运行时,此设置才有效。如果您在经典模式下运行,它将被忽略。如果将其设置为true,则所有集成的HTTP模块将在每个请求上运行。例如,不仅适用于.aspx页面,也适用于静态文件,如.jpg.gif.css.html.pdf。。。因此,启用它可能会对您的网站的性能产生影响。这是真的,但问题是为什么要启用MVC

我注意到在VS2012 MVC4项目框架中,
runAllManagedModulesForAllRequests
默认为
true
。有人知道为什么吗?什么功能需要此设置?

只有在IIS中以集成管道模式运行时,此设置才有效。如果您在经典模式下运行,它将被忽略。如果将其设置为
true
,则所有集成的HTTP模块将在每个请求上运行。例如,不仅适用于.aspx页面,也适用于静态文件,如.jpg.gif.css.html.pdf。。。因此,启用它可能会对您的网站的性能产生影响。

这是真的,但问题是为什么要启用MVC4项目模板。我他妈的怎么知道?这是一个你应该问框架设计者的问题。我已经解释了这种设置的含义,以及如果您不这样做,为什么会对应用程序的性能产生负面影响。据我所知,基本模板中没有任何功能需要它。当我启动一个新的应用程序时,我总是做的第一件事就是确保这个设置被设置为
false
。我同意任何答案都是推测性的(充其量)。“他们为什么这样做”——出于这个原因,这种风格的问题是有问题的。尽管如此,您的陈述“我所知道的基本模板中没有需要它的功能”是有用的,您应该将其包括在您的答案中: