Клиент SignalR - удаленный сервер возвратил ошибку (401 Unauthorized) - PullRequest
4 голосов
/ 14 декабря 2011

Предпосылка

Я пытаюсь заставить службу Windows действовать в качестве клиента signalR для веб-сервера (проект MVC3, работающий на IIS Express). При попытке подключения к серверу возвращается 401 Unauthorized.

Теперь, насколько я понимаю, служба Windows работает под учетной записью NETWORK_SERVICE, и имеет смысл, что это недопустимое имя пользователя для подключения к IIS. Однако я попытался настроить SignalR следующим образом:

Init

private static Connection WebUIConnection = new Connection("http://localhost:54193/IISWebsite");

Установить учетные данные

WebUIConnection.Credentials = new System.Net.NetworkCredential("?", "?")

Настройки IIS: IIS - это почти стандартный проект MVC3, в котором включена проверка подлинности Windows.

Что я пробовал

Я попытался установить учетные данные SignalR в качестве моего локального имени пользователя Windows + pw, а также попытался использовать AD uname + pw локальной сети, но я не вижу в этом способа сделать это.

Итак, что я спрашиваю, что я должен учитывать, когда я пытаюсь заставить свою службу Windows действовать как клиент для сервера signalR, и есть ли способ настроить IIS для предоставления клиентского доступа пользователю Network_Service? Действительно ли возможно заставить службу Windows действовать как клиент для веб-сервера, работающего в IIS, как я пытаюсь сделать?

Спасибо, Лари

Ответы [ 2 ]

2 голосов
/ 15 декабря 2011

Мне удалось решить проблему, которая кажется.С SignalR.Client URL-адрес, который вы должны указать в строке подключения, выглядит следующим образом:

private static Connection WebUIConnection = new Connection("http://localhost:54193/IISWebsite/signalr/hubs");

В дополнение к этому мне пришлось предоставить ему имя пользователя и пароль локального администратора, чтобы он могподключения.Я чувствую, что этого не следует делать, и я был бы признателен, если бы кто-нибудь смог объяснить мне, как сделать так, чтобы пользователь сети имел доступ к IIS с локальной машины.учетная запись администратора и запуск службы Windows под этой учетной записью в производственной среде - это решение, которое я готов принять.Таким образом, он сможет без проблем подключаться к локальному IIS.

Надеюсь, эта информация будет полезна другим:)

Лари

1 голос
/ 15 декабря 2011

Если вы используете концентраторы, то этот код неверен.Есть HubConnection, который вы должны использовать.Больше информации здесь:

https://github.com/SignalR/SignalR/wiki/SignalR-Client-Hubs

...