Я получил эту ошибку при вызове веб-сервиса. Эта проблема также была связана с безопасностью транспортного уровня. Я мог бы вызвать веб-сервис через проект веб-сайта, но при повторном использовании одного и того же кода в тестовом проекте я получил бы WebException, содержащее это сообщение. Добавив следующую строку перед тем, как решить проблему, проблема:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Изменить
System.Net.ServicePointManager.SecurityProtocol - это свойство выбирает версию протокола Secure Sockets Layer (SSL) или Transport Layer Security (TLS) для использования для новых подключений, использующих только протокол Secure Hypertext Transfer Protocol (HTTPS); существующие соединения не изменяются.
Я считаю, что конфигурация
SecurityProtocol
важна во время установления связи TLS при выборе версии протокола.TLS handshake - этот протокол используется для обмена всей информацией, необходимой обеим сторонам для обмена фактическими данными приложения с помощью TLS.
ClientHello - клиент отправляет сообщение ClientHello с указанием самой высокой версии протокола TLS, которую он поддерживает ...
ServerHello - сервер отвечает сообщением ServerHello, содержащим выбранную версию протокола ... Выбранная версия протокола должна быть самым высоким, что и клиентская, и серверная поддержка. Например, если клиент поддерживает TLS версии 1.1, а сервер поддерживает версию 1.2, следует выбрать версию 1.1; версия 1.2 не должна быть выбрана.
Различные службы в VS записываются в окно вывода, поэтому на основе источника создается встроенный фильтр. Вы можете часто выбирать источник, такой как «Build Output», «Test discovery», «General», «Debug» и т. Д.
Debug.Write вызовы перехватываются VS, и текст заканчивается в Output но нет встроенной фильтрации.
Я могу думать о 3 способах этого:
(*) Если вы спуститесь по этому маршруту, обратите внимание, что Debug.Write - это просто трассировка, и когда вы присоединяете отладчик VS, он добавит себя в качестве лидера трассировки. То же самое для DbgView. Но когда вы отсоедините его, он не удалит слушателя, и сообщения будут потеряны.
Я использую этот метод:
Откройте окно «Отладка - выход», просто щелкнув правой кнопкой мыши по окну.
Вы можете проверить / снять флажок в соответствии с вашими потребностями.
Одна вещь, которую я только что нашел в VS 2017 (и я думаю, что это тоже в других версиях):
Tools | Options | Debugging | General > Redirect all Output Window text to the Immediate Window
Это дает вам только программу Debug.Write
X
выводит в непосредственное окно и оставляет все остальное содержимое в окне вывода, которое вы можете оставить закрытым.
Я все еще могу посмотреть мусор в окне вывода если мне нужно по какой-то причине; он не подавляется. Он просто не попадает в ближайшее окно.
И я просто оставлю небольшое мгновенное окно, состыкованное внизу.
Я думаю, что это хорошо, потому что со всем мусором, появляющимся в окне вывода, я действительно больше не обращал внимания на результат, чем на соглашение об использовании (то есть просто около ни одного), поэтому младенца выбрасывали с водой для ванны. Но теперь я на самом деле вижу некоторый вывод отладки программы, который стоит и требует внимания.
IMHO Microsoft должна расширить раскрывающееся окно окна вывода, чтобы включить все категории, которые FetFrumos указывал в его ответ, поэтому разработчики могут просто оставить его в «Program Output». Я думаю, что это будет хорошим улучшением.