代码之家  ›  专栏  ›  技术社区  ›  Jason Weber

ASP.NET响应筛选器与SharePoint 2010发布网站默认值冲突

  •  1
  • Jason Weber  · 技术社区  · 15 年前

    我正在调试一个带有asp.net响应过滤器的httpmodule。这将动态重写呈现的sharepoint wcm页面的部分内容。在SP2007中,发布页面在服务器2003和服务器2008上都呈现良好状态。但是,在服务器2008 R2/IIS7上的SP2010 B2中无法呈现等效页。ASP.NET返回以下错误:

    后缓存替换与修改响应缓冲区的IIS集成管道中的模块不兼容。管道中的本机模块修改了与托管缓存后替换回调关联的http_data_块结构,或者托管筛选器修改了响应。

    这个错误与 KB #2014472 . 然而:

    1. 已在网站集级别禁用匿名身份验证访问的缓存
    2. 母版页或布局页上似乎没有任何替换控件
    3. iis 7设置都是默认的

    这正在发生,例如在/pages/default.aspx上。似乎我遗漏了一些与缓存相关的东西…但是什么?

    2 回复  |  直到 15 年前
        1
  •  3
  •   Ruud Stijger    15 年前

    也许你现在已经找到了一个合适的解决方案,但我偶然发现了同样的问题。

    我可以通过在iis 7中打开网站的“页面和控件”来解决这个问题,并设置 缓冲区 选择权 .

        2
  •  0
  •   Jason Weber    15 年前

    更新

    以下是ms-dev支持部门对此问题的官方“答案”。

    问题:
    在下列情况下,除了在asp.net中进行响应筛选之外,还有什么方法可以修改由其他进程呈现的html:
    1。不能修改另一个进程
    2。必须支持缓存后替换

    答:
    “是的,你的问题是明确的蓝天,这是官方声称不支持。因为缓存后替换会将某些替换块组合到响应字节,而响应筛选则希望筛选响应的原始字节(未修改)。因此,先前组合的替换块不能再被保留。

    到目前为止,微软没有其他选择。”