【发布时间】:2013-04-08 03:18:22
【问题描述】:
我有一个独特的情况。我开发了一个 MVC 4 网站和 .NET 客户端,可连接到托管 SignalR 集线器的站点。 hubConnection 对象成功连接到集线器。但是,如果我调用 hubProxy.Invoke("Test").Wait(); ,则创建的 hubProxy 对象根本不会返回。我的集线器只是返回一个布尔值 true;
有趣的是,当我通过 VS 和 IIS express 在本地运行网站和 .net 客户端时,一切正常。当我在完整的 2008R2 IIS 7.5 服务器和笔记本电脑上的 .net 客户端上运行网站时,它失败了。或者更恰当地说,线程只是在 HubProxy.Invoke("Test").Wait() 处停止并且永远不会返回(它只是继续运行)。
更有趣的部分是当我开始运行 Fiddler 以查看发生了什么或者调用是否通过 Web 服务器时,问题随后自行解决并且一切正常。
似乎以某种方式充当我的 .net 客户端代理的提琴手使 hubProxy.Invoke() 工作。如果我需要代理,我会认为我的 HubConnection 对象会失败?能够成功连接到集线器连接只是意识到线程似乎永远运行试图调用集线器代理上的函数,这有点误导??
谁能澄清这种行为?以及关于我需要做什么才能在 .net 客户端正确创建 HubConnection/Proxy 以调用服务器上的方法的任何建议?
此外,这可能相关也可能不相关。我注意到,如果我将我的网站托管为:
http{s}//mywebsiteserver/mywebsite”,我可以通过网络浏览器以这种方式浏览,它不能用作信号器连接字符串。我必须使用完全限定的 DNS 名称
http{s}//mywebsiteserver.mydomainname.xyz/mywebsite
有什么建议吗?
谢谢! 迈克
【问题讨论】: