私は何時間も探しましたが、やや一般的な問題であると想像するものに対する答えが見つかりませんでした.
サービス参照 (asmx) を介してサービスに送信したいデータ (文字列 [2000000]) がたくさんあります。現在、SOAP はサイズが原因で爆発します。明日は 4M 文字列を送信する可能性があるため、パイプを増やしたくありません。
だから私はマルチパート SOAP メッセージを考えていましたが、.NET はこれをネイティブにサポートしていません (そうですか?)。では、これを行うにはどうすればよいでしょうか。ヘルプやリンクは大歓迎です。
[WebMethod]
public string[] returnSameStringArray(string[] string_array)
{
return string_array;
}
コーリング コード:
BasicHttpBinding basicHttpBinding = new BasicHttpBinding(BasicHttpSecurityMode.TransportCredentialOnly);
basicHttpBinding.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
basicHttpBinding.MaxReceivedMessageSize = 131072;
myServiceReference = new MyService.MyServiceSoapClient(basicHttpBinding, new EndpointAddress(@"http://myaddress/myservice.asmx"));
myServiceReference.ClientCredentials.Windows.AllowedImpersonationLevel = TokenImpersonationLevel.Impersonation;
myServiceReference.ChannelFactory.Credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;
string[] theStringArray = new string[2000000](); //init with something later
theStringArray = myServiceReference.returnSameStringArray(theStringArray);