仅在使用二进制序列化时WCF超时

时间:2015-11-13 15:38:48

标签: c# .net wcf iis

我们有一个.NET 4.0 WPF客户端应用程序,它使用WCF与服务器组件(在IIS中托管)进行通信。大多数通信是使用basicHttpBinding和SOAP(Content-Type:text / xml)完成的;但是,出于性能原因,特别是一个端点被切换为使用customBinding和二进制序列化(Content-Type:application / soap + msbin1)。

结果,旧网址结束于" .svc"现在有一个额外的" /二进制"扩展,例如" .SVC /二进制"

这已经好了2年了,没有任何问题。

前几天,我接到了一位客户的电话,看起来有些东西是"阻止"使用此启用二进制的端点进行的调用。奇怪的是,他们不会彻底失败 - 相反,他们会超时 - 即使我将超时延长到像5分钟一样疯狂的事情 - 电话最终时间已经过去了。但是,只要我几乎自动切换回basicHttpBinding,一切都会开始变得很好!

这可能是网络安全软件吗?客户端配置? IIS设置?我真的不知道是什么阻止了这个......

有没有其他人经历过这样的事情?

以下是来自客户端配置文件的customBinding:

<customBinding>
        <binding name="CustomBinding_IDataAccess" closeTimeout="00:01:00"
          openTimeout="00:01:00" receiveTimeout="00:01:00" sendTimeout="00:01:00">
          <binaryMessageEncoding maxReadPoolSize="2147483647" maxSessionSize="2147483647" maxWritePoolSize="2147483647">
            <readerQuotas maxDepth="32" maxStringContentLength="2147483647" maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="2147483647"/>
          </binaryMessageEncoding>
          <httpTransport transferMode="Streamed" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" useDefaultWebProxy="true"/>
        </binding>
      </customBinding>

此外,快速查看IIS日志,显示了此端点的大量条目: Request_CancelledTimer_EntityBody

没有其他端点在日志文件中包含消息。

0 个答案:

没有答案