503将NancyFx与Owin一起使用时出错

时间:2017-03-23 08:15:55

标签: owin nancy http-status-code-503

我正在尝试将NancyFx与SignalR结合使用。为了托管两者,我使用的是Microsoft Owin。但不幸的是,当尝试通过PostMen访问REST-API(Chrome浏览器的REST-Api客户端扩展)时,我总是得到503(服务不可用)。因此,我将主要成分提取到一个更简单的程序,允许我在Nancy Selfhost和Owin之间切换。 使用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 个答案:

答案 0 :(得分:3)

我的一位同事在我的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/

一切都按预期工作。