#.net #asmx
#.net #asmx
Вопрос:
У меня есть веб-служба asmx.Net framework 4.6, который использует веб-службу https. Вот приведенный ниже код, который у меня есть перед вызовом службы:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;
Он отлично работает в режиме отладки. Я могу просматривать ожидаемые данные, но при запуске приложения в режиме выпуска или без отладки в vs2017 я получаю следующую ошибку:
Web ServiceSystem.ServiceModel.CommunicationException:
An error occurred while making the HTTP request to https://externalwebservice address.
This could be due to the fact that the server certificate is not configured properly
with HTTP.SYS in the HTTPS case. This could also be caused by a mismatch of the
security binding between the client and the server.
---> System.Net.WebException: The underlying connection was closed:
An unexpected error occurred on a send.
---> System.IO.IOException: Unable to read data from the transport connection:
An existing connection was forcibly closed by the remote host.
---> System.Net.Sockets.SocketException: An existing connection was forcibly closed
by the remote host.
Я получил самозаверяющий сертификат, установленный в IIS.
Я действительно смущен тем, что он работает в режиме отладки, но не в выпуске. Пожалуйста, помогите.
Комментарии:
1.
Ssl3
Убирайтесь оттуда. Он устарел и опасен. И в этом отношении базовыеTls
и иTls11
также не должны больше использоваться. Теперь вам нужен 1.2 или 1.3. Это может даже решить проблему, поскольку предложение этих старых небезопасных протоколов в сочетании с другими тактиками, которые в конечном итоге приведут к понижению рейтинга, является одной из тактик, используемых хакерами, и некоторые серверы сразу же откажутся, если вы даже сделаете ее доступной.2. Спасибо за объяснение. Я внес изменения, которые все еще не работают.