У меня есть веб-сервис WCF, работающий в IIS 7 с помощью самоподписанного сертификата (это - подтверждение концепции, чтобы удостовериться, что это - маршрут, я хочу пойти). Это требуется, чтобы использовать SSL.
Действительно ли возможно использовать Тестовый Клиент WCF для отладки этого сервиса, не нуждаясь в несамоподписанном сертификате?
Когда я пробую, я получаю эту ошибку:
Ошибка: не Может получить Метаданные из https:///Service1.svc, Если это - сервис Windows (R) Communication Foundation, к которому у Вас есть доступ, проверьте включение публикации метаданных в указанном адресе. Для справки, разрешающей публикацию метаданных, отошлите к документации MSDN в Ошибке Exchange http://go.microsoft.com/fwlink/?LinkId=65455.WS-Metadata URI: метаданные https:///Service1.svc содержат ссылку, которая не может быть разрешена: 'https:///Service1.svc'. Не удалось установить доверительные отношения для безопасного канала SSL/TLS с полномочиями ''. Базовое соединение было закрыто: не Мог установить доверительные отношения для безопасного канала SSL/TLS. Удаленный сертификат недопустим согласно процедуре проверки. HTTP ПОЛУЧАЕТ Ошибку URI: https:///Service1.svc Там был ошибкой при загрузке 'https:///Service1.svc'. Базовое соединение было закрыто: не Мог установить доверительные отношения для безопасного канала SSL/TLS. Удаленный сертификат недопустим согласно процедуре проверки.
Править: Этот вопрос конкретно об использовании Тестового Клиента WCF для тестирования веб-сервиса, уже защищенного через SSL с помощью самоподписанного сертификата. Сервер уже настраивается для принятия любого сертификата, если, это - Тестовый Клиент WCF, для которого я не вижу способ сделать это.
Вы можете предоставить свой собственный метод для проверки сертификата.
Попробуйте так:
ServicePointManager.ServerCertificateValidationCallback +=
new System.Net.Security.RemoteCertificateValidationCallback(EasyCertCheck);
Обратный звонок:
bool EasyCertCheck(object sender, X509Certificate cert,
X509Chain chain, System.Net.Security.SslPolicyErrors error)
{
return true;
}
вы сможете это сделать, если замените тестовый клиент WCF на WCFStorm Lite Edition . Он бесплатный и немного более гибкий, чем тестовый клиент MS ... например, он позволяет вам указать имя пользователя и пароль, если вы выполняете аутентификацию по имени пользователя.