![]() |
Модераторы: gambit |
![]() ![]() ![]() |
|
undelete |
|
||||
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 9.2.2011 Репутация: нет Всего: нет |
Здравствуйте!
Проблема такая, создал WCF сервис и клиент под него. Тестирую локально - все прекрасно работает. Публикую сервис на хостинг (uh.ua) , и при вызове метода выдает исключение: "Необработанное исключение типа "System.ServiceModel.Security.SecurityNegotiationException" произошло в mscorlib.dll Дополнительные сведения: Не удалось открыть безопасный канал, так как произошла ошибка при согласовании безопасности с удаленной стороной. Возможно, это связано с отсутствием или неправильным указанием EndpointIdentity в EndpointAddress, использованном для создания канала. Убедитесь, что EndpointIdentity, указанный или подразумеваемый в EndpointAddress, правильно идентифицирует удаленную сторону. " Конфиг клиента:
Конфиг сервиса:
Помогите разобраться плиз! А то скину ядерную боеголовку на центральный офис мелкософта =))) Это сообщение отредактировал(а) undelete - 20.6.2011, 19:34 |
||||
|
|||||
Plamenk |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 258 Регистрация: 18.2.2003 Репутация: 1 Всего: 3 |
В клиенте не указан адрес конечной точки:
Пример настроенного конфига на сервер:
Для клиента мона сгенерить через студию. |
||||
|
|||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
Plamenk, ну и что что не указан? Если у вас IIS то она вообще плевать хотела на это указание.
Проблема тут как раз с идентификацией - для начала я бы включил трассировку wcf ... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Plamenk |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 258 Регистрация: 18.2.2003 Репутация: 1 Всего: 3 |
Я говорил про конфиг клиента.
|
|||
|
||||
jonie |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
Plamenk, ну и ничего в вашем примере работать не будет, т.к. вы используете WSHttpBinding который по умолчанию шифрует сообщения используя идентификацию на основе виндофс пользователей. ..... собственно в этом надо думать и есть проблема....
я могу, конечно, описать что да как надо делать в общем случае (применительно к этому биндингу)... если это кому-то надо... Там есть свои заморочки, в частности настройка http.sys драйвера (если вы делаете selfhosted сервис и хотите ssl шифрование канала) Это сообщение отредактировал(а) jonie - 7.7.2011, 23:24 -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
Fitc |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 129 Регистрация: 30.1.2010 Репутация: 1 Всего: 4 |
Опиши пожалуйста! |
|||
|
||||
jonie |
|
||||||||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
0. Понимать что такое шифрование
1. Просмотреть доклады про безопасность WCF от Натальи Уфимцевой на techdays.ru Итак, по-порядку. Вы хотите защитить передаваемые данные от модификации и\или прочтения? Наиболее стандартным мне кажется способом является использование SSL для шифрования всего потока - взгляните сами - везде в интренрент https используют. Способ позволяет шифровать весь канал, удостоверяясь в источнике и получателе сообщений. Этот способ я и опишу как наиболее часто используемый. Для начала нам надо создать сертификат, это можно сделать следующим спосбом:
Это самоподписанный сертификат. Который будет установлен сразу в хранилище компьютера (а не пользователя). Вы можете на него посмотреть сделав - пуск-выполнить-mmc.exe - добавить оснастку сертификаты - текущего компьютера. Теперь у нас есть сертификат который нам надо использовать на сервере. Вот полный конф сервера:
я тут использую net.tcp, но роли это не играет. Теперь важное замечание: IIS будет плевать на baseAddress-ы ну и на сертификатов путь - т.к. у него всё свое имеется. IIS: надо опубликовать сайт и навесить ему в свойствах наш сертификат - собственно это будет "пол конфига").. Self-Hosted: конфиг полный выше - там есть поиск сертификата по "отпечатку" в хранилище LocalMachine\My (отпечаток посмотрите в оснастке управления). Думали всё ? Да хрен там... Начинаются пляски с бубном. WCF вообще говоря не умеет SSL нормально поддерживать - это он возлагает на драйвер http.sys. Его надо настроить. В случае IIS настраивать не надо - т.к. за нас это делает iis. На разных версиях винды надо выполнить одну из коммнд:
Это сделает биндинг ssl на указанный порт используя указанный сертификат. Но и это еще не всё. Теперь надо побороть файрвол встроенный. Как-то так:
где параметры вписать для юзера под кем запускается этот self-hosted сервис. Эти все операции производить, конечно, для двух портов (у нас mex точка вынесена по https). Далее можно запуститься и проверить в браузере что там выдает MEX по адресу в конфиге. Ну и wcftestclient. В случае ошибок ковырять логи, которые надо включить:
лог можно просмотреть утилитой svctraceviewer. Далее конфиг клиента очень простой:
собственно всё.... -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
||||||||||||
|
|||||||||||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, cully, mr.DUDA, Exception. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Распределённые приложения и сеть | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |