我有一个托管在Windows Azure上的ASP.NET MVC应用程序,并且ASP.NET正在处理从网站提供的所有静态文件。有没有办法让IIS直接提供静态文件,而不是通过ASP.NET路由这些请求?我希望帮助提高从服务器返回这些静态文件的性能。
我不确定这是否是ASP.NET MVC本身所做的事情,或者是因为我是在Azure上托管它。
更新:我希望这样做的主要原因是因为静态文件由应用程序中注册的所有HttpModule处理,从而降低了性能。
我有一个托管在Windows Azure上的ASP.NET MVC应用程序,并且ASP.NET正在处理从网站提供的所有静态文件。有没有办法让IIS直接提供静态文件,而不是通过ASP.NET路由这些请求?我希望帮助提高从服务器返回这些静态文件的性能。
我不确定这是否是ASP.NET MVC本身所做的事情,或者是因为我是在Azure上托管它。
更新:我希望这样做的主要原因是因为静态文件由应用程序中注册的所有HttpModule处理,从而降低了性能。
在IIS 7集成模式下使用时,所有请求都通过托管管道。它已经充分优化,而不是您应该担心的事情。另一方面,如果您注意到应用程序的ASP.NET路由引擎拦截了这些静态文件,您可以尝试将它们添加为 IgnoreRoute
定义 在你的 Global.asax
。
在IIS 7集成模式下使用时,所有请求都通过托管管道。它已经充分优化,而不是您应该担心的事情。另一方面,如果您注意到应用程序的ASP.NET路由引擎拦截了这些静态文件,您可以尝试将它们添加为 IgnoreRoute
定义 在你的 Global.asax
。
我删除了“runAllManagedModulesForAllRequests = '真'“在web.config中定义并添加”前提='managedHandler“对于我不想为静态内容执行的HttpModule注册。
我还实现了达林的答案。
不完全是我想要的,但似乎符合要求。
更新:如果从web.config中删除“runAllManagedModulesForAllRequests = true”,请确保您的IIS是最新的,否则无扩展的URI将不再起作用。 KB关于此: http://support.microsoft.com/kb/980368/en-us
(当然,即使你保留了这个选项,你也应该担心你的服务器是最新的。)