【问题标题】:How to stop IIS going through .net to serve up images (favicon.ico).如何阻止 IIS 通过 .net 提供图像 (favicon.ico)。
【发布时间】:2012-03-25 07:14:14
【问题描述】:

我正在编写一个 .Net MVC 网站,并使用 IIS express。

如何阻止图像通过 .Net 管道提供。我认为我可以通过这样做来忽略路线:routes.IgnoreRoute("favicon.ico")。但我根本不希望代码被击中。

我尝试将此添加到 web.config 中的 system.webServer 部分

<handlers>
   <add name="StaticFile-ico" path="*.ico" verb="*" modules="StaticFileModule" resourceType="File" requireAccess="Read" />
</handlers>

但这没有任何效果。我做错了什么?

【问题讨论】:

标签: .net asp.net-mvc-3 iis iis-express


【解决方案1】:

来自: http://blogs.msdn.com/b/tmarq/archive/2010/04/01/asp-net-4-0-enables-routing-of-extensionless-urls-without-impacting-static-requests.aspx

在 IIS 7 上,假设请求满足内核缓存要求,只有对静态文件的前几个请求会错过内核缓存。

但是由于您使用了 iis express,因此您不会获得内核缓存,因此 iis express 不支持。

【讨论】:

    【解决方案2】:

    这个线程很老了,但我在 Azure 网站上遇到了同样的问题。我found a way 告诉 IIS 忽略 /favicon.ico 请求,因为我的 favicon.ico 是使用元标记设置的。

    您只需要添加一个路由并告诉 IIS 忽略该请求:

    <rule name="block favicon" stopProcessing="true">
      <match url="favicon\.ico" />
      <action type="CustomResponse" statusCode="404" subStatusCode="1" 
        statusReason="The requested file favicon.ico was not found" 
          statusDescription="The requested file favicon.ico was not found" />
    </rule>
    

    【讨论】:

      猜你喜欢
      • 2011-03-02
      • 2016-05-26
      • 2014-05-05
      • 1970-01-01
      • 1970-01-01
      • 2016-04-13
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多