Я использую Службу WCF локально, чтобы вычислить некоторую информацию, это C #, и вернуть данные.Данные, которые я возвращаю, представляют собой список списков с плавающей точкой List<List< float>>
, всего 4 из них.Каждый список поплавков содержит 400 предметов, и в каждой коллекции их по 180.Таким образом, 4 из List<List<float>>
у меня изначально была ошибка с недостаточным пространством, а затем я обновил размер до максимального значения в 2 000 000 байт.вручную установите эти значения.
private void InitializeServiceHost()
{
if (_serviceHost != null)
{
_serviceHost.Close();
}
Uri address = new Uri("net.tcp://localhost:6100/ExternalBallistics");
NetTcpBinding binding = new NetTcpBinding(SecurityMode.None);
binding.MaxReceivedMessageSize = 2000000;
binding.MaxBufferSize = 2000000;
binding.MaxBufferPoolSize = 2000000;
binding.CloseTimeout = new TimeSpan(1, 10, 0);
binding.OpenTimeout = new TimeSpan(1, 10, 0);
binding.ReceiveTimeout = new TimeSpan(1, 10, 0);
binding.SendTimeout = new TimeSpan(1, 10, 0);
_serviceHost = new ServiceHost(typeof(ExternalBallisticsImpl), address);
_serviceHost.Description.Behaviors.Add(GetMetadataBehavior());
_serviceHost.CloseTimeout = new TimeSpan(1, 10, 0);
_serviceHost.OpenTimeout = new TimeSpan(1, 10, 0);
_serviceHost.AddServiceEndpoint(typeof(IExternalBallistics), binding, address);
_serviceHost.AddServiceEndpoint(ServiceMetadataBehavior.MexContractName, MetadataExchangeBindings.CreateMexTcpBinding(), "mex");
_serviceHost.Open();
}
Я также установил таймауты на 1 час и 10 минут.
Я получаю ошибку The socket connection was aborted. This could be caused by an error processing your message or a receive timeout being exceeded by the remote host, or an underlying network resource issue. Local socket timeout was '01:09:59.9770000'.
Теперь этот тайм-аутпроисходит в течение 30 секунд.У меня есть модульный тест, который я выполняю, и Служба все делает правильно, и ответ содержит действительные данные, однако, когда он возвращает этот ответ, я всегда получаю эту ошибку.
Я искал и не могу получить ответ, которыйразрешает, как те, что я видел, просто сообщите мне увеличить буфер / тайм-ауты, которые у меня есть.