Csharp/C#教程:尝试浏览信号器/集线器时,HTTP 503服务不可用分享


尝试浏览信号器/集线器时,HTTP 503服务不可用

我在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 = "https://*:8080"; WebApp.Start(url); } } public class Broadcaster : Hub { public void SendDownloadResult(bool result, string device, string description, string connectionId, string task) { var context = GlobalHost.ConnectionManager.GetHubContext(); context.Clients.Client(connectionId).sendDownloadResult(result, device, description, task); } } 

我已经在3台不同的PC上部署了这个Windows服务,它可以在两台PC上正常工作,但另一方面,当我尝试浏览https://localhost:8080/signalr/hubs时,我得到HTTP 503服务不可用

在所有3台PC上执行代码时不会抛出exception。

我已经在添加/删除Windowsfunction中检查了IIS的function,它们都是一样的。

我错过了什么?

我能够通过以下设置在本地重现:

  1. 使用NetSh.exe或类似工具保留https://localhost:8080/
  2. 调用WebApp.Start("https://*:8080")
  3. 浏览到https://localhost:8080/

会发生什么事情是Http.Sys接受传入请求,检查主机头,确定localhost:8080有预留,但是意识到没有应用程序正在侦听localhost:8080,只有*:8080。 Http.Sys然后返回503。

解决方案:

  1. 试试WebApp.Start("https://+:8080")
  2. 删除Http.Sys / NetSh注册

我也有同样的问题。 我通过改变纠正了它

  const string url = "https://*:8080"; 

  const string url = "https://+:8080"; // * replaced by + 

我也意识到,在其中一台PC中,端口8080正在使用中。

更改端口

 const string url = "https://*:8080"; 

 const string url = "https://*:8088"; 

解决了这个问题

上述就是C#学习教程:尝试浏览信号器/集线器时,HTTP 503服务不可用分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1009620.html

(0)
上一篇 2021年12月29日
下一篇 2021年12月29日

精彩推荐