Spring.NET frwm - Spring.Web.Services.WebServiceProxyFactory で WCF サービスのプロキシ オブジェクトを作成します。
WCF サービスは SOAP MTOM を使用します。構成はここにあります:
<basicHttpBinding>
<binding name="MTOM_BINDING"
maxReceivedMessageSize="10000000000"
receiveTimeout="00:10:00"
sendTimeout="00:10:00"
maxBufferSize="10000000000"
maxBufferPoolSize="524288"
bypassProxyOnLocal="true"
messageEncoding="Mtom">
<readerQuotas
maxArrayLength="10000000000"
maxBytesPerRead="10000000000"
maxDepth="10000000000"
maxNameTableCharCount="10000000000"
maxStringContentLength="10000000000"/>
</binding>
</basicHttpBinding>
<service name="TestService"
behaviorConfiguration="DefaultBehavior">
<endpoint address=""
binding="basicHttpBinding"
bindingConfiguration="MTOM_BINDING"
contract="TestService.ITestService"
bindingNamespace="http://test.com/TEST"
behaviorConfiguration="SimpleWSDLBehavior"/>
<endpoint
contract="IMetadataExchange"
binding="mexHttpBinding"
address="mex"/>
</service>
Spring.Web.Services.WebServiceProxyFactory プロキシ オブジェクトの構成:
<object id="testProxy"
type="Spring.Web.Services.WebServiceProxyFactory, Spring.Services">
<property name="ServiceUri" value="http://localhost/TestService.svc?wsdl"/>
<property name="ServiceInterface" value="TestService.ITestService, TestService"/>
<property name="ProductTemplate">
<object>
<property name="Timeout" value="2147483646" />
</object>
</property>
</object>
WCF サービスが SOAP ではなく SOAP MTOM を使用することを Spring.Web.Services.WebServiceProxyFactory に指定する方法が見つかりませんでした。
Spring.Web.Services.WebServiceProxyFactory のこの構成は、データがバイナリではなくテキストにシリアル化された SOAP メッセージを除いているためです。