Мне нужно подключиться из VS2012 (или VS2017, та же проблема) к веб-службе на основе Java, которая включает только TLS 1.2 с взаимной аутентификацией сертификата.URL WSDL, например, https://example.com:8443/foo/bar?wsdl. Я добавил корневой сертификат в мое доверенное корневое хранилище и сертификат клиента с закрытым ключом в свое личное хранилище, и я могу загрузить файл WSDL с помощью Chrome (после того, как браузер запросит у менясертификат для подключения к службе).
Проблема в том, что я не могу добавить ссылку на службу в Visual Studio.Текст, который я получаю: «Произошла ошибка (Подробности) при попытке найти службы в 'https://example.com:8443/foo/bar?wsdl'". При нажатии на« Сведения »появляется следующий текст:
Произошла ошибка при загрузке' https://example.com:8443/foo/bar?wsdl/_vti_bin/ListData.svc/$metadata'. Запрос был прерван: не удалось создать защищенный канал SSL / TLS. Метаданные содержат ссылку, которую невозможно разрешить: 'https://example.com:8443/foo/bar?wsdl'. Не удалось установить безопасный канал для SSL / TLS с полномочиями' example.com: 8443 '. Запрос был прерван: не удалось создать безопасный канал SSL / TLS. Если служба определена в текущем решении, попробуйте создать решение и снова добавить ссылку на службу.
Это выглядиткак Visual Studio получил основную часть WSDL, но затем запросил эту пословицу метаданных ... / $, которая не существует и не упоминается в WSDL. Как настроить Visual Studio для использования службы как есть?
Обратите внимание, я могу загрузить файл WSDL и добавить ссылку на службу из файла, но я бы предпочел, чтобы Visual Studio сделал это для меня автоматически.Это значит, что следующему разработчику через год не придется тратить день на то, чтобы выяснить, как обновить ссылку.Кроме того, абсолютный путь к файлу WSDL сохраняется в файле Reference.svcmap, который не идеален при совместном использовании проекта через систему контроля версий.