【问题标题】:How to keep images (and other files) out of ASP.NET Pipeline如何将图像(和其他文件)保留在 ASP.NET 管道之外
【发布时间】:2010-02-18 15:05:56
【问题描述】:

如何防止某些文件类型通过 ASP.NET 管道(命中 global.asax 等)?

【问题讨论】:

  • IIS 7.5 但我也需要知道 IIS 6。
  • 它不应该与 IIS6 一起使用,除非您启用了通配符映射。
  • 您检查过 IIS 中的处理程序映射吗?

标签: asp.net iis global-asax pipeline


【解决方案1】:

你用的是什么模式?集成管道还是经典?我认为这会影响答案。

但本质上,您只需要确保您的 StaticFiles 处理程序未映射到 ASP.NET。

【讨论】:

    【解决方案2】:

    global.asax 是一个 HttpModule,每个通过 ASP.NET 引擎的请求都会调用它。 例如,图像会通过 ASP.NET 引擎进行点传递。它们被视为静态文件。

    【讨论】:

    • 在 IIS 7.5 中自行请求图像时,我在 global.asax 中有断点。
    • 检查 IIS 处理程序部分以查看您是否已将图像映射到 ASP.NET 引擎。大概就是这样……
    【解决方案3】:

    请注意,如果您使用的是内置的 Visual Studio Web 服务器(您说设置断点),那么您可能会遇到细微的行为差异。引用自What are the (dis)advantages of using Cassini instead of IIS?

    另一个缺点是它通过 gloabal asax 文件发送每个请求,该文件包括对图像和样式表的所有请求。这意味着如果你有代码可以处理文件名,例如查找,那么辅助文件也会得到处理。

    【讨论】:

    【解决方案4】:

    如果您运行的是 Windows 家庭版,因此无法安装 IIS,请考虑使用UltiDev Web Server Pro。它是免费的、轻量级的,并且与 Cassini 不同,它处理 ASP.NET 管道之外的静态内容请求。

    【讨论】:

      猜你喜欢
      • 2019-02-12
      • 2017-02-17
      • 1970-01-01
      • 2016-09-24
      • 2011-07-14
      • 2019-02-05
      • 2019-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多