无法在 ASP.NET/IIS7 经典模式下设置 HTTP Vary 标头

2024-03-22

首先,介绍一下背景。我为 ASP.NET 编写了一个自定义 HTTP 压缩模块。我的开发机器有Windows 7 Ultimate,它附带了IIS7。我的生产环境使用IIS6。

我遇到的问题是,资源专家 Droid (redbot.org) 告诉我,我需要在响应中添加标头以正确支持压缩:“Vary: Accept-Encoding”

在IIS7的集成模式下,可以正常运行。但是,在经典模式(我的应用程序最终运行的方式)下,我无法让代码使用 Response.AppendHeader()、Response.Cache.SetVaryByCustom() 或 Response.Cache.VaryByHeaders 中的任何一个输出此标头。

我使用通配符处理程序映射,因此 ASP.NET 即使在经典模式下也能看到所有请求。


我知道你说过你已经尝试过这个,但这是通常的方法:

this.Response.Cache.SetVaryByCustom("Accept-Encoding");

您可以尝试在生命周期的后期调用该方法,例如从End_Request在 HttpModule 中。

不幸的是,如果这不起作用,在 IIS6 中,您将需要使用 ISAPI 来设置自定义 HTTP 标头。

FWIW,内置压缩系统应该自动为您设置该标头。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法在 ASP.NET/IIS7 经典模式下设置 HTTP Vary 标头 的相关文章

  • 防止整数值在 ASP.NET Web API 模型绑定中设置布尔参数?

    我正在开发一个 ASP NET Web API 其中的方法采用以下模型作为输入参数 public InputModel int Id get set bool IsTrue get set 它适用于 true 和 false 值 我尝试检查
  • 如何在asp.net中单击按钮在新选项卡中打开页面?

    我想在单击按钮时在浏览器的新选项卡中打开一个页面 我在谷歌上搜索了很多 但我找不到任何东西 这是我的按钮
  • asp.net 站点地图管理员查看用户看到的内容

    我目前正在尝试找出如何最好地为我的应用程序实施管理方面 我有一个用户网站 用户可以登录 自定义他们的个人资料 提交信息等 我希望管理用户能够登录并能够从用户列表中进行选择 从那里 管理员可以像用户一样为用户提交信息 Website Star
  • 执行多个查询时如何保持连接打开?

    我正在使用多个查询从应用程序中的同一服务器提取数据 问题是每次有新查询时我都必须打开一个新连接 是否有可能 打开连接 运行查询 拉取结果 运行另一个查询 拉取另一个结果 运行最终查询 拉取另一个结果 关闭连接 尽管您可能还不知道 但您的做法
  • 在 .NET C# 项目中使用 PHP

    有谁知道是否可以 以及是否有任何复杂性 在 NET C 项目中使用 PHP 语言 我知道 VB 和 C 现在可以混合在解决方案中 所以我想知道 由于 IIS 现在能够运行 PHP 您是否可以将它们组合成一个单一的运行时 显然 提出这个问题的
  • 在机器密钥更改期间维护 ASP.Net 成员密码

    是否有实用程序或代码示例可以使用旧密钥解密 然后使用新密钥为 ASP Net 会员用户加密密码 提到的解决方法都不适合我 我的解决方案如下 它首先以明文形式存储密码 然后使用新的 MachineKey 再次对其进行重新加密 机器钥匙更换 h
  • 如何正确编码 mailto 链接?

    我正在生成一些 HTML 并且我想生成 XSS 和数据库内容安全的mailto关联 这里使用的正确编码是什么 这个怎么样 myLiteral Text string Format mailto 0 Content Type text htm
  • 需要进一步解释“没有加载任何符号”错误

    我在该网站上看到过有关以下错误的帖子 当前不会命中断点 尚未为此文档加载任何符号 但是 问题描述和解决方案并没有解决我所遇到的情况 所以我希望得到一些澄清 我正在使用 Visual Studio 2010 并正在开发一个非常大 有点旧的 A
  • 在 ASP.NET 中优雅地处理 URI 黑客攻击

    我编写了一个应用程序 可以优雅地处理大多数异常 页面设计完好无损 并且有一条漂亮的错误消息 我的应用程序将它们全部捕获在Page Error事件并添加了例外HttpContext Curent Context Items然后做了一个Serv
  • 如何限制ajax日历扩展器中的年份

    我有一个日历延长器 我只想在日历中显示当前年份 用户无法选择 2010 年 因为当前年份是 2011 年 那么如何做到这一点呢 Use the StartDate and EndDate属性来设置您希望允许用户选择的可接受日期范围 您可以根
  • Dictionary(Of String, String) 和 IDictionary(Of String, String) 有什么区别

    我可以用 IDictionary 做更多或更少的事情吗 这两个集合有何不同 IDictionary 只是一个接口 一个描述实现类必须执行的操作的契约 Dictionary 是一个实现该接口的具体类 因此必须提供 IDictionary 接口
  • RegularExpressionValidator 的 ValidationExpression 内的引号

    使用所述控件来验证 ASP NET TextBox 我很好奇最流行的做法是什么 目前使用 ValidationExpression w d s quot 有更短的方法吗 尝试过 无济于事 谢谢 Using 不起作用 并且您将无法使用 任何一
  • 如何使用 C# 代码使用超链接的 onClick 事件?

    我正在尝试为页面中的超链接添加条件 而不是仅仅使用特定的链接 例如 a href help Tutorial html Tutorial a 我想为不同的用户显示不同的页面 例如 如果用户以管理员身份登录 他们将看到与普通用户不同的链接 我
  • 捕获对 ASP.NET ASMX Web 服务的 SOAP 请求

    考虑将传入的 SOAP 请求记录到 ASP NET ASMX Web 服务的要求 任务是捕获发送到 Web 服务的原始 XML 需要记录传入消息以进行调试检查 该应用程序已经使用了自己的日志库 因此理想的用法如下 string or XML
  • 如何将 ComboBox 添加到 ASP.NET 未绑定的 GridView

    我想知道如何将 ComboBox 列添加到未绑定的 GridView通过运行时的代码 以编程方式 我过去使用过以下实现 ITemplate 的类 但用于 DropDown 和 CheckBox 绑定 public class AddTemp
  • 无法在单元测试中检查响应标头

    我有一个 Http 处理程序的单元测试 在其中我创建了一个HttpResponse对象并将其传递给我的 Http 处理程序的方法之一 我的一项测试尝试验证响应标头是否已正确设置 Assert AreEqual gzip response H
  • 继承 IdentityUser 我在 UserManager 上收到错误

    我正在使用 NET Framework 4 5 1 和 Asp Net Identity 2 1 0 开发 Web Api 2 2 应用程序 我不确定我在做什么 但我想将我的数据库与 ASP NET Identity 数据库合并 我已经这样
  • 如何使用 ASP.NET MVC 4.0 DonutOutputCache VaryByCustom 使缓存失效

    我正在为我的 ASP NET 应用程序使用 DevTrends MvcDonutCaching 包 它工作得很好 我目前遇到的一个问题是使我为子操作设置的 VaryByCustom 缓存无效 这是我用于 VaryByCustom 设置的一些
  • MVC2 - 使用 RDF 和命名空间使用 RSS 提要 http://www.w3.org/1999/02/22-rdf-syntax-ns#'

    我试图阅读华盛顿鱼类和野生动物部的提要 但不断收到此错误 名为 RDF 的元素和 名称空间 http www w3 org 1999 02 22 rdf syntax ns 不是允许的 Feed 格式 这是来自 RssController
  • 会话不会保留值并始终返回 null

    我有一个网站 它完全通过 HTTPS 即使有人尝试通过 HTTP 访问 他也会被重定向到 HTTPS 我正在使用表单身份验证 最近 我更改了一个设置以使站点更安全 之后会话不保留值并且始终返回 null 设置是

随机推荐