C# 设置Response.Filter如何在返回前导致长时间(2分钟)延迟?

C# 设置Response.Filter如何在返回前导致长时间(2分钟)延迟?,c#,asp.net,wcf,response.filter,C#,Asp.net,Wcf,Response.filter,我有一个.svc WCF web服务,看起来像这样: [OperationContract] [WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Xml)] public XElement GetFunStuff(Stream raw) { // make an XElement document ... // Compress

我有一个.svc WCF web服务,看起来像这样:

[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Bare, ResponseFormat = WebMessageFormat.Xml)]
public XElement GetFunStuff(Stream raw) {

    // make an XElement document ...

    // Compress it.
    // !!!! If I do this, it takes 2 minutes.  If I do NOT, it takes under a second.
    {
        HttpContext.Current.Response.Filter = new DeflateStream(context.Response.Filter, CompressionMode.Compress);
        HttpContext.Current.Response.AppendHeader("Content-Encoding", "deflate");
    }

    return xml;
}
考虑到我当前的测试数据,未整理的XML响应是70k。压缩,它是6k。这两种方法在功能上都有效,因为它们返回响应(除了一种标记为deflate)。我的测试服务器没有被其他任何东西使用,在测试期间,CPU使用率没有明显的峰值

那么,为什么压缩响应需要大约122到128秒的响应时间,而未压缩响应需要(更预期的)一两秒?它可能挂断或超时的原因是什么

[编辑]我刚刚注意到我的内容长度被设置为(我不确定)未压缩的大小,而不是压缩的大小。这样,服务器就可以一直等待,直到有人强行关闭连接或放弃连接。所以问题变成了,为什么我的内容长度错了。。。这可能与