问题描述
现在情况是这样的。我的signalr建在web工程里面,然后我做了一个console工程的测试程序,用来链入Hub中,并且接收广播消息classProgram{staticvoidMain(string[]args){IHubProxy_hub;stringurl=@"http://localhost:10086/signalr/hubs";_hub=connection.CreateHubProxy("TestHub");connection.Start().Wait();Console.WriteLine("链接成功!ConnectionId为:"+connection.ConnectionId);_hub.On("Broadcast",x=>Console.WriteLine(x));}}
现在的问题是,我在vs调试中,只要把web工程启起来(就是运行web工程里的一个html或aspx页面,让iisexpress运行起来)我的console程序打开后就能连入Hub。但是我把web工程发布到iis上,网站也启动了,console测试程序就是链不上Hub(console里的url已改成了iis上挂的ip和端口,不是地址问题)难道IIS上启动网站后signalR不自动注册吗?StartUp.cs:publicclassStartup{publicvoidConfiguration(IAppBuilderapp){app.MapSignalR("/signalr",newHubConfiguration());//Anyconnectionorhubwireupandconfigurationshouldgohere//app.MapSignalR();}}
解决方案
解决方案二:
奇怪。。。。我把console(client)中的url改成localhost,然后把console.exe放在服务端执行,就链上了!!难道只能用localhost链接?不能写ip?(我使用的网络相对于服务器是外网,console里填的hub的ip地址也是外网IP)