Nul*_*nce 17 .net c# windows-services signalr
我在VS2012中创建了一个Windows托管的SignalR集线器:
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseCors(CorsOptions.AllowAll);
app.MapSignalR();
}
}
public static class SignalR
{
public static void Start()
{
const string url = "http://*:8080";
WebApp.Start<Startup>(url);
}
}
public class Broadcaster : Hub
{
public void SendDownloadResult(bool result, string device, string description, string connectionId, string task)
{
var context = GlobalHost.ConnectionManager.GetHubContext<Broadcaster>();
context.Clients.Client(connectionId).sendDownloadResult(result, device, description, task);
}
}
Run Code Online (Sandbox Code Playgroud)
我已经在3台不同的PC上部署了这个Windows服务,它可以在两台PC上正常工作,但另一方面,当我尝试浏览时,我得到HTTP 503服务不可用 http://localhost:8080/signalr/hubs
在所有3台PC上执行代码时不会抛出异常.
我已经在添加/删除Windows功能中检查了IIS的功能,它们都是一样的.
我错过了什么?
Tra*_*her 37
我能够通过以下设置在本地重现:
http://localhost:8080/WebApp.Start<Startup>("http://*:8080")http://localhost:8080/会发生什么事情是Http.Sys接受传入的请求,检查主机头,确定有localhost:8080的预留,但意识到没有应用程序正在侦听localhost:8080,只有*:8080.Http.Sys然后返回503.
解决方案:
WebApp.Start<Startup>("http://+:8080")我也有同样的问题.我通过改变纠正了它
const string url = "http://*:8080";
Run Code Online (Sandbox Code Playgroud)
至
const string url = "http://+:8080"; // * replaced by +
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8684 次 |
| 最近记录: |