Генерация прокси WCF для ненадежной конечной точки SSL - PullRequest
6 голосов
/ 01 апреля 2009



Мне нужно создать прокси WCF для службы, предоставляемой нашим клиентом. Сервис заблокирован довольно плотно, так что это сложно. Кроме того, я новичок в WCF, поэтому я могу упустить что-то очевидное ...

Клиент открыл свой брандмауэр только для нашего рабочего сервера, поэтому я не могу сгенерировать прокси из Visual Studio на своем компьютере разработчика. Кроме того, услуга доступна только через HTTPS. И это требует от нас аутентификации с использованием сертификата клиента ...

Я надеялся запустить svcutil на рабочей коробке, чтобы сгенерировать файлы .cs, а затем скопировать их локально. Но svcutil отказывается работать, потому что клиент использует самозаверяющий сертификат. Это дает мне следующую ошибку:

Базовое соединение было закрыто: Не удалось установить доверительные отношения для безопасного канала SSL / TLS. удаленный сертификат недействителен согласно процедуре валидации.

Я попытался добавить сертификат службы в качестве доверенного корневого сертификата, но это не работает. В оснастке MMC для сертификатов появляется сообщение «В Windows недостаточно информации для проверки сертификата».

Есть ли способ обойти проверку безопасности, которую выполняет svcutil?

Я могу успешно перейти к WSDL из IE, когда удаленно подключусь к производственному серверу. Мне просто нужно нажать «перейти на этот сайт (не рекомендуется)». Я также должен выбрать установленный сертификат клиента, который отлично работает. Затем я могу загрузить файлы WSDL и XSD вручную через IE. Таким образом, другой альтернативой может быть создание прокси WCF из локальных копий WSDL и XSD вместо запуска svcutil для работающей службы. Но я не знаю, как это сделать правильно.

Я пытался разместить статические файлы WSDL и XSD на другом веб-сайте, который мы размещаем, и изменил атрибуты , чтобы они указывали на новый сайт. Но когда я запустил svcutil для этого сайта, я получил кучу ошибок о двойных объявлениях типов - например ::

Ошибка: произошла ошибка проверки схема, сгенерированная во время экспорта: Источник: Строка: 1 Столбец: 1415 Ошибка проверки: complexType 'http://[domain -name] / Promotions / 2009-02-17: InsertReferralPromo_Response ' имеет уже было объявлено.


Я упускаю какой-то очевидный способ сделать это? Или мы должны просто потребовать, чтобы клиент ослабил свою безопасность? :)

Спасибо за любую помощь, которую вы можете мне оказать ...
Ричард

Ответы [ 2 ]

2 голосов
/ 01 апреля 2009

Ваша проблема, похоже, не имеет ничего общего с безопасностью. Кажется, есть проблема с загруженным WSDL и схемами.

Одним из предложений было бы разместить все файлы в каталоге на диске, а не на веб-сайте. При необходимости удалите атрибуты schemaLocation.

Однако, похоже, это не поможет. Вы можете попробовать проверить эти файлы с помощью XMLSpy.

0 голосов
/ 22 июня 2009

Когда вы переходите к WSDL, нажмите на сертификат, посмотрите сертификат, затем установите сертификат.

Затем попробуйте запустить svcutil снова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...