#c# #nunit #soap-client
#c# #nunit #soap-клиент
Вопрос:
Этот soap-клиент работает, если он запускается как консоль, но как тест (nunit) — нет. ошибка во втором случае: «Не удалось прочитать данные из транспортного соединения: существующее соединение было принудительно закрыто удаленным хостом»
[TestFixture]
public class BasicTests
{
static void Main(string[] args)
{
using (var service = new ServiceReference2.GatewaySoapClient())
{
var result = service.GetFileStatus("bla", "bla", false);
}
}
[TestCase]
public void FileInfoTest()
{
using (var service = new ServiceReference2.GatewaySoapClient())
{
var result = service.GetFileStatus("bla", "bla", false);
}
}
}
F5 и работает, отладочный тест завершается неудачей. Загадка
Ответ №1:
В System.Net.ServicePointManager.SecurityProtocol
обоих случаях они разные, я должен принудительно запустить его в тестовом режиме с помощью:
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls | System.Net.SecurityProtocolType.Tls11 |System.Net.SecurityProtocolType.Tls12;
using (var service = new ServiceReference2.GatewaySoapClient())
{
var result = service.GetFileStatus("bla", "bla", false);
}
Очень сложная проблема для поиска. Надеюсь, этот пост может помочь кому-то еще. Примечание: это тоже происходит, вызывая его внутри веб-приложения.