如何防止ASP.NET MVC在Windows Azure上处理静态文件(js和图像)?

Chr*_*ann 11 asp.net-mvc iis-7 azure static-content

我有一个托管在Windows Azure上的ASP.NET MVC应用程序,并且ASP.NET正在处理从网站提供的所有静态文件.有没有办法让IIS直接提供静态文件而不是通过ASP.NET路由这些请求?我希望帮助提高从服务器返回这些静态文件的性能.

我不确定这是否是ASP.NET MVC本身所做的事情,或者是因为我是在Azure上托管它.

更新:我希望这样做的主要原因是因为静态文件由应用程序中注册的所有HttpModule处理,从而降低了性能.

Chr*_*ann 7

我删除了web.config中的" runAllManagedModulesForAllRequests ='true' "定义,并将" preCondition ='managedHandler "添加到我不想为静态内容执行的HttpModule注册中.

我还实施了达林的答案.

不完全是我想要的,但似乎符合要求.

更新:如果从web.config中删除"runAllManagedModulesForAllRequests = true",请确保您的IIS是最新的,否则无扩展的URI将不再起作用.关于它的KB:http://support.microsoft.com/kb/980368/en-us

(当然,即使你保留了这个选项,你也应该担心你的服务器是最新的.)


Dar*_*rov 6

在IIS 7集成模式下使用时,所有请求都通过托管管道.它已经充分优化,而不是您应该担心的事情.另一方面,如果您注意到应用程序的ASP.NET路由引擎拦截了这些静态文件,您可以尝试将它们作为IgnoreRoute定义添加到您的应用程序中Global.asax.