我在IIS 7.5上托管了WCF服务,通过HTTP协议进行通信。它被定义为customBinding,见下文。它需要会话,它还没有保护级别。
<customBinding>
<binding name="customHttpBinding" openTimeout="00:15:00" sendTimeout="00:15:00" receiveTimeout="00:15:00" closeTimeout="00:15:00">
<reliableSession ordered="false" />
<security requireSignatureConfirmation="false" enableUnsecuredResponse="true" />
<textMessageEncoding messageVersion="Soap12WSAddressingAugust2004" />
<httpTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" />
</binding>
</customBinding>
客户端是MS Excel AddIn,用户的目的是异步调用6个不同的操作契约。在我打开小提琴手之前,一切都很有效。在那里,我看到多个相同的HTTP请求:
我浏览了这些相同响应的内容,它确实包含相同的数据。在调试模式下,我确保客户端只调用一次操作契约,服务方法也只运行一次。
问题是如何减少多个请求?
在过去,我将其配置为wsHttpBinding并且数据未被多次请求,但我们需要对配置进行更多控制,因为它将部署在多个服务器上。
我不想在网络上多次传输相同的数据,在其他情况下我需要传输更大的数据(大约数百MB)。
更新
根据spodger问题,这是客户端配置:
<customBinding>
<binding name="customHttpBinding" openTimeout="00:15:00" sendTimeout="00:15:00" receiveTimeout="00:15:00" closeTimeout="00:15:00">
<reliableSession ordered="false" acknowledgementInterval="00:00:30" inactivityTimeout="00:15:00" flowControlEnabled="true" />
<security requireSignatureConfirmation="false" enableUnsecuredResponse="true" />
<textMessageEncoding messageVersion="Soap12WSAddressingAugust2004" />
<httpTransport maxBufferSize="2147483647" maxReceivedMessageSize="2147483647" requestInitializationTimeout="00:10:00" />
</binding>
</customBinding>