我只是玩了一下signalR。我的应用程序只有一个简单的集线器,它存储在 ASP.NET 应用程序中,我编写了一个WPF 客户端,它通过集线器连接和创建的代理与 ASP.NET 应用程序进行交互。在我的本地 PC 上一切正常。我在IIS上部署了ASP.NET 应用程序。
现在我要进入正题了……
当我在我自己的PC 上的浏览器中输入以下内容时(pcthi-and)
http://pcthi-and:8080/signalr/hubs
我会得到我想要的
当我在另一台电脑的浏览器中输入相同的 url 时,我会得到相同的响应,并且一切看起来都很好。
但我的应用程序只能在我的电脑上运行,而不能在另一台电脑上运行。当我在另一台电脑上启动 hubconnection 时,我没有得到 connectionId。
我试图将 url 更改为我的 IP 地址,但没有效果。
浏览器调用集线器有效,但应用程序不起作用。
调用如下所示:
private bool tryToConnectToCoffeService()
{
try
{
this.hubConnection = new HubConnection(ConfigurationManager.ConnectionStrings["coffeeConnection"].ConnectionString);
this.hubConnection.Credentials = CredentialCache.DefaultNetworkCredentials;
this.coffeeService = this.hubConnection.CreateHubProxy("coffee");
this.hubConnection.Start();
if (string.IsNullOrEmpty(hubConnection.ConnectionId))
{
return false;
}
return true;
}
catch(Exception ex)
{
return false;
}
}
Global.asax:
public class Global : System.Web.HttpApplication
{
protected void Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.MapHubs();
}
像这样的枢纽
[HubName("coffee")]
public class CoffeeHub : Hub
{
我的集线器连接字符串是这样的:
"http://pcthi-and:8080/"
或者:
"http://My-Current-IP-Address:8080/"
我使用 SignalR 1.0 rc2。
有人有想法吗?感谢您的帮助。
干杯
坦率