Стек Web-сервисов отказывается работать до перезагрузки системы. - PullRequest
0 голосов
/ 02 октября 2009

У меня есть следующий сценарий. Мое клиентское приложение подключается к программному обеспечению на стороне сервера через веб-сервисы. У меня нет контроля над программным обеспечением на стороне сервера.

Каждый раз, когда серверные пользователи разворачивают новую версию, мое клиентское приложение не может подключиться к ней (через веб-службы ... ping работает нормально), пока клиентская система не будет перезагружена (просто перезапуск приложения не приводит к трюк). Тогда все прекрасно работает, как ничего не случилось.

Я должен упомянуть, что код на стороне сервера основан на WCF, в то время как клиентское приложение подключается к нему через конечную точку ASMX (как выражено в Wsdl http://mycompany/services/v1_0/Default.svc?wsdl). Аутентификация от клиента к серверу осуществляется посредством аутентификации Windows). (NTLM).

Что может происходить? Почему я должен перезагрузить систему?

<ч /> Ответ на @ EugeneOs

Обычно в Fiddler есть 3 набора связи:

IE:  Get /Default.svc HTTP 1.1
Response: 401.  Negotiate with NTLM

IE:  Get /Default.svc HTTP 1.1 - with NTLM token 
Response: 401.  Negotiate with NTLM specific token (token provided in the response)

IE:  Get /Default.svc HTTP 1.1 - with the token provided above 
Response: No Response whatsoever.

Мой следующий шаг - подключить его к сетевому монитору Microsoft, просто чтобы убедиться, что последний пакет прошел (хотя я подозреваю, что это будет пустой тратой времени).

Ответы [ 2 ]

2 голосов
/ 02 октября 2009

Стек веб-сервисов этого не делает. Сожалею. В клиенте ASMX практически нет стека. Он не делает ничего более изумительного, чем HttpWebRequest! Это не имеет ничего общего с сервером, являющимся WCF, поскольку ASMX ничего не знает о WCF. С точки зрения вашего ASMX-клиента это просто простой веб-сервис SOAP.

Я бы проверил проблемы с прокси-сервером и посмотрел на сетевой трафик как во время сбоя, так и во время успеха, чтобы увидеть, в чем разница.

Я мог бы также попытаться создать очень простой тестовый клиент, в котором нет ничего особенного, чтобы воспроизвести проблему в более простой среде. Это исключит все, что может делать настоящая клиентская программа с точки зрения настройки клиентского прокси.

1 голос
/ 02 октября 2009

Что произойдет, если вы просто перейдете к http://mycompany/services/v1%5F0/Default.svc или http://mycompany/services/v1%5F0/Default.svc?wsdl до перезагрузки системы?

Что-нибудь добавляется в журнал событий при попытке доступа к указанным выше URL-адресам из браузера?

Какие ошибки вы получаете, когда говорите, что "не удается подключиться"? Можете ли вы посмотреть ответ, используя Fiddler?

...