Я создал самодостаточный сервер wcf, используя wsHttpBinding
. Я использую Win 2003 server R2 SP2.
Если я настрою прослушивание на http://localhost:443/MyService
, все будет нормально. Я могу подключиться к http://localhost:443/MyService
с помощью Internet Explorer, и я получаю стандартное сообщение «Bad Request»
Теперь, если я пытаюсь перейти на HTTPS, я наблюдаю странное явление.
Вот что я сделал:
- Я изменил свой конфигурационный файл wcf с
http://localhost
на https://localhost
и с Security=None
на Security=Transport
(как объяснено в многочисленных руководствах по wcf)
Я зарегистрировал свой порт HTTP следующим образом:
httpcfg delete ssl -i 0.0.0.0:443
httpcfg set ssl -i 0.0.0.0:443 -h ea2e450ef9d4...
Обратите внимание, что сертификат, который я использовал, является "реальным сертификатом" (т. Е. Выданным доверенным центром сертификации, а именно Comodo). Сервер отвечает на эхо-запрос на NS, указанный в сертификате.
Теперь время ожидания истекает:
Microsoft Telnet> open localhost 443
Вот вывод из netstat
(Pid '4' - это процесс 'System'):
netstat -nao
Proto Local Adress Remote Adress State Pid
TCP 0.0.0.0:443 0.0.0.0:0 Listening 4
А вот скриншот из TCPView , полученный при вводе команды открытия в telnet:
альтернативный текст http://img26.imageshack.us/img26/3376/tcpview2si6.jpg
Я немного озадачен. Для меня, если netstat
говорит, что сервер прослушивает 443, соединение telnet с 443 не должно прерваться, и у меня должна быть хотя бы пустая подсказка, ожидающая, что я наберу зашифрованные данные:)
Пока я пытался:
- Повторите все шаги с нуля, точно следуя инструкции MSDN
- Используется порт 10443 вместо 443
- Отключить брандмауэр
- Использовать самозаверяющий сертификат
Я не знаю, что попробовать дальше ... есть идеи?