【问题标题】:How to prevent ASP.NET MVC from handling Static files (js and images) on Windows Azure?如何防止 ASP.NET MVC 在 Windows Azure 上处理静态文件(js 和图像)?
【发布时间】:2011-11-11 09:13:39
【问题描述】:

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

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

更新:我希望这样做的主要原因是因为静态文件由应用程序中注册的所有 HttpModules 处理,因此会降低一些性能。

【问题讨论】:

    标签: asp.net-mvc iis-7 azure static-content


    【解决方案1】:

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

    我也实现了达林的回答。

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

    更新:如果您从 web.config 中删除“runAllManagedModulesForAllRequests=true”,请确保您的 IIS 是最新的,否则无扩展 URI 将不再工作。知识库:http://support.microsoft.com/kb/980368/en-us

    (当然,即使您保留该选项,您也应该担心您的服务器是最新的。)

    【讨论】:

    • removed the "runAllManagedModulesForAllRequests='true'" definition in the web.config 成功了
    【解决方案2】:

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

    【讨论】:

    • 我明白了。也许如果我能阻止 HttpModules 在那些静态请求上运行......
    猜你喜欢
    • 2011-12-19
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 2011-01-05
    • 1970-01-01
    • 2016-07-19
    • 2014-05-29
    相关资源
    最近更新 更多