У меня есть уникальная ситуация. Я разработал веб-сайт MVC 4 и .NET-клиент, который подключается к сайту, на котором размещен концентратор SignalR. Объект hubConnection успешно подключается к концентратору. Однако созданный объект hubProxy просто не возвращается, если я вызываю hubProxy.Invoke («Test»). Wait(); который мой хаб просто возвращает обратно bool of true;Клиент SignalR .net подключается к концентратору, но не может hubProxy.Invoke()
Интересная часть заключается в том, что, когда я запускаю как сайт, так и .net-клиент локально через VS и IIS express, все работает правильно. Когда я запускаю веб-сайт на полном сервере 2008R2 IIS 7.5 и клиенте .net на моем ноутбуке, он терпит неудачу. Или более подходящим образом поток просто останавливается на HubProxy.Invoke («Тест»). Wait() и никогда не возвращается (он просто продолжает работать).
Еще более интересной является то, что я начал запускать Fiddler, чтобы посмотреть, что происходит, или если вызов перешел на веб-сервер, проблема затем решает сам, и все работает правильно.
Похоже, что какой-то скрипач, выступающий в качестве прокси-сервера для моего .net-клиента, делает работу hubProxy.Invoke(). Я бы подумал, что мой объект HubConnection потерпит неудачу, если мне понадобится прокси-сервер в любом случае? Это немного неверно, чтобы иметь возможность подключиться к подключению концентратора успешно только для того, чтобы понять, что поток, кажется, работает навсегда, пытаясь вызвать функцию на прокси-сервере?
Можно ли прояснить это поведение? И любые предложения о том, что мне нужно сделать, чтобы правильно создать HubConnection/Proxy на стороне клиента .net для вызова методов на сервере?
Кроме того, это может быть или не быть связано. Я заметил, что если я размещу свой сайт как:
http {s} // mywebsiteserver/mywebsite ", и я могу просматривать этот путь через веб-браузер, он НЕ будет работать как строка подключения signalr. Вместо этого я должен использовать полное DNS имя HTTP {S} // mywebsiteserver.mydomainname.xyz/mywebsite
Любые предложения?
Спасибо! Майк
Unreal, вы 100% правильно. Это ответ. Было бы очень полезно, если бы эта информация была помещена в SignalR Wiki. Казалось бы, все, кто попытается использовать клиент .NET signalR, будут иметь эту проблему? Странно, что он нигде не задокументирован, или я пропустил его где-нибудь? – user1686912