Soap-клиент работает в консольном режиме, но не как тест NUnit

#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);
}
  

Очень сложная проблема для поиска. Надеюсь, этот пост может помочь кому-то еще. Примечание: это тоже происходит, вызывая его внутри веб-приложения.