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

Iis 7 ASP.Net响应筛选器与SharePoint 2010发布网站默认值冲突,iis-7,iis-6,asp.net-2.0,sharepoint-2010,response.filter,Iis 7,Iis 6,Asp.net 2.0,Sharepoint 2010,Response.filter,我正在调试带有ASP.NET响应筛选器的HttpModule。这将动态重写部分呈现的SharePoint WCM页面。在Server2003和Server2008上,发布页面在SP2007中呈现良好。但是,在服务器2008 R2/IIS7上的SP2010 B2中无法呈现等效页面。ASP.NET返回以下错误: 缓存后替换与IIS集成管道中修改响应缓冲区的模块不兼容。管道中的本机模块修改了与托管后缓存替换回调关联的HTTP_DATA_块结构,或者托管筛选器修改了响应 这一错误与实际情况一致。然而:

我正在调试带有ASP.NET响应筛选器的HttpModule。这将动态重写部分呈现的SharePoint WCM页面。在Server2003和Server2008上,发布页面在SP2007中呈现良好。但是,在服务器2008 R2/IIS7上的SP2010 B2中无法呈现等效页面。ASP.NET返回以下错误:

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

这一错误与实际情况一致。然而:

  • 在网站集级别禁用匿名和身份验证访问的缓存
  • 母版页或布局页上似乎没有任何替换控件
  • IIS 7设置都是默认设置
  • 这种情况正在发生,例如在/pages/default.aspx上。似乎我缺少了一些与缓存相关的内容……但是什么?

    更新 以下是MS Dev支持部门对这个问题的官方“回答”

    问题:
    当:
    1.无法修改其他进程
    2.必须支持缓存后替换

    回答:
    “是的,你的问题很清楚,官方声称这是不支持的。因为缓存后替换会将某些替换块组合到响应字节,而响应筛选会过滤响应的原始字节(未修改)。因此,以前组合的替换块不能再被保留


    到目前为止,微软还没有替代方案。”

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


    我可以通过在IIS 7中打开站点的“页面和控件”并将缓冲区设置为

    来解决此问题。谢谢您的回复。这确实解决了这个问题,因为页面将成功呈现。但是,关闭输出缓存会在很大程度上影响可伸缩性。因此,对于较小的站点,这可能是可行的,但对于较大的站点,这可能是不可接受的。