503 Ошибка при использовании NancyFx с Owin

Я пытаюсь использовать NancyFx в сочетании с SignalR. Для размещения обоих я использую Microsoft Owin. Но, к сожалению, я всегда получаю 503 (служба недоступна), когда пытаюсь получить доступ к REST-API через PostMen (клиентское расширение REST-Api для браузеров Chromium). Поэтому я извлек основные ингредиенты в более простую программу, которая позволяет мне переключаться между Нэнси Селфхост и Оуэном. При использовании Nancy SelfHost все работает нормально, но при использовании Owin я все равно получил ошибку 503.

internal class Program {
    private const bool _USE_SELF_HOST = false;

    private static void Main(string[] args) {
        if (_USE_SELF_HOST) {
            var host = "http://localhost:7084";
            UseSelfHost(host);
        } else {
            var host = "http://localhost:7084";
            UsingWebApp(host);
        }
    }

    private static void UseSelfHost(string host) {
        var webhost = new NancyHost(new Uri(host));
        webhost.Start();

        Console.ReadLine();
        webhost.Stop();
    }

    private static void UsingWebApp(string host) {
        var nancyHost = WebApp.Start<Startup>(host);
        Console.WriteLine($"Nancy started at {host}");
        Console.ReadLine();
        nancyHost.Dispose();
    }

}

public class MainModule : NancyModule {
    public MainModule() {
        Get["/"] = x => "Hello world!";
    }
}

Я проверил:

  • netsh http show urlacl - мне разрешено открывать этот порт
  • Visual Studio работает с правами администратора, кроме того, в этом нет необходимости.

1 ответ

Решение

Мой коллега обнаружил ошибку в моей конфигурации netsh. У меня было два urlacls для одного и того же порта TCP:

Reservierte URL            : http://wks-user:7084/
    Benutzer: DOMAIN\user
        Abh▒ren: Yes
        Delegieren: No
        SDDL: D:(A;;GX;;;XXX)

Reservierte URL            : http://+:7084/
    Benutzer: DOMAIN\user
        Abh▒ren: Yes
        Delegieren: No
        SDDL: D:(A;;GX;;;XXX)

После удаления первой записи через

netsh http delete urlacl http://wks-user:7084/

все работает как положено.

Другие вопросы по тегам