2013-08-09 6 views
0

Я написал фрагмент кода, который передает конверты SOAP клиенту. Запрос содержит сертификат, а полезная нагрузка подписывается вместе с сертификатом. Я написал тестовый жгут, который использует HttpWebRequest для успешного вызова сервера. Источник был интегрирован в другой проект - службу WCF. Мы используем SoapUi для вызова нашего сервиса, который, в свою очередь, использует HttpWebRequest для вызова клиента. Когда мы развертываем тестовый жгут или наш сервис, он находится в той же папке приложения на том же сервере.HttpWebRequest терпит неудачу при вызове через WCF

Насколько я могу судить, нет материала Различия между моим источником и их. Однако их код всегда терпит неудачу с ошибкой сертификата: «Основное соединение было закрыто: не удалось установить доверительные отношения для безопасного канала SSL/TLS». Эта ошибка обсуждалась раньше, наиболее полная дискуссия, казалось, была здесь (Error: C# The underlying connection was closed: Could not establish trust relationship for the SSL/TLS secure channel), но подходы, на которые не распространяется, не работали для меня.

Изменилось бы поведение HttpWebRequest, поскольку оно вызывается из службы WCF? Я в недоумении, где смотреть дальше.

ответ

0

Ошибка указывает, что вызывающая сторона (ваша служба в этом случае) не доверяет сертификату, используемому сервером. Для интерактивных пользователей и пользователей системы существует другое хранилище доверия. Поэтому, если ваша служба работает в IIS, вы используете другого пользователя, чем в своих модульных тестах, и пользователь использует хранилище доверия системы. В зависимости от ваших потребностей либо примените обходной путь по ссылке, которую вы отправили, либо add the correct certificate to the store.

Смежные вопросы