0

私は何時間も探しましたが、やや一般的な問題であると想像するものに対する答えが見つかりませんでした.

サービス参照 (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);
4

1 に答える 1

0

zeromq とサービス スタックを確認することをお勧めします。必要な量の制御を提供します。

ペイロードを複数の呼び出しに分割することも検討できます。

于 2012-01-06T18:55:00.423 に答える