我的任务是尝试将我们的 signalR 集线器移动到带有服务总线背板的天蓝色云服务。那里没有问题。javascript 客户端能够获取 hubs.js 并无错误地连接。我们还有一个 web api 项目需要向集线器发送消息,但我无法连接。我试过的一切都不起作用,连接超时。我一定遗漏了一些东西,但是因为这是我第一次使用 signalR 和 Azure,所以我不知道它是什么。Web api 托管在 IIS 上。
这是我试图用来连接的代码:
private async void InitializeHub()
{
string connectionString = "http://xxxx-xxxxx.cloudapp.net/signalr";
var hubConnection = new HubConnection(connectionString, useDefaultUrl: false);
//var hubConnection = new HubConnection(connectionString);
HubProxy = hubConnection.CreateHubProxy("clientPortalHub");
await hubConnection.Start();
}
我缺少一些配置吗?在 IIS 中需要做些什么?我没有收到任何有用的错误消息,只是连接超时。我可以在浏览器中点击 url(真实的,而不是我粘贴的)并获得“未知传输”。
如果它有帮助,那就是集线器的启动:
public void Configuration(IAppBuilder app)
{
// Any connection or hub wire up and configuration should go here
string connectionString = "<omitted>";
GlobalHost.DependencyResolver.UseServiceBus(connectionString, "clientPortalHub");
app.Map("/signalr", map =>
{
map. UseCors(CorsOptions.AllowAll);
var hubConfiguration = new HubConfiguration
{
// You can enable JSONP by uncommenting line below.
// JSONP requests are insecure but some older browsers (and some
// versions of IE) require JSONP to work cross domain
// EnableJSONP = true
};
hubConfiguration.EnableDetailedErrors = true;
map.RunSignalR(hubConfiguration);
});
}