Подтвердить что ты не робот

Служба HTTP 503 недоступна при попытке просмотра signalr/hubs

У меня есть хостинг-узел SignalR, созданный в VS2012:

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);
        }
    }

Я развернул эту службу Windows на 3 разных ПК, она отлично работает на двух ПК, а с другой, я получаю HTTP 503 Service недоступна, когда я пытаюсь просмотреть http://localhost:8080/signalr/hubs

Никакое исключение не возникает, когда код выполняется на всех трех ПК.

Я проверил возможности IIS в добавлении/удалении окон, они все одинаковы.

Что мне не хватает?

4b9b3361

Ответ 1

Я смог воспроизвести это локально со следующей установкой:

  • Используйте NetSh.exe или аналогичный инструмент для резервирования 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")
  • Удалите регистрацию Http.Sys/NetSh

Ответ 2

У меня тоже была такая же проблема. Я исправил его, изменив

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

К

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

Ответ 3

Я также понял, что на одном из компьютеров использовался порт 8080.

Изменение порта из

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

к

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

решил проблему