Я искал часы и не нашел ответа на то, что, как я думаю, является довольно распространенной проблемой.Многопользовательский обмен сообщениями в .NET с ссылками на службы C#
У меня есть много данных (строка [2000000]), которые я хочу отправить в службу через служебную ссылку (asmx). 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);
Желательно, чтобы не разбить полезную нагрузку на несколько вызовов (полезная нагрузка может измениться, или одна из строк может быть синтаксисом файла с несколькими мегабайтами, который в любом случае должен быть разделен). Спасибо за предложение zeromq и сервиса, я сейчас изучу их. – Tizz
Получив краткий обзор zeromq, я не понимаю, как это будет реализовано в контексте моего кода, который у меня выше. Я относительно новичок в транспорте и сетях, и, возможно, я просто не могу понять необходимость zeromq с моим нынешним пониманием. Разве нет многопроцессорного протокола SOAP, который я могу использовать для этого? Я должен использовать сторонний протокол? – Tizz
zeromq отлично подходит для больших полезных нагрузок и дает вам возможность разделить их, оставив вашу бизнес-логику как есть. –