HttpListener(SelfHost)Nancy Web Server - 使用C#中的管理员权限自动注册服务器URL

时间:2018-03-10 22:25:01

标签: c# owin nancy httplistener netsh

我正在尝试使用Microsoft.Owin.Host.HttpListenerNancy.Owin来运行本地api服务器,如下所示:

https://github.com/NancyFx/Nancy/wiki/Hosting-nancy-with-owin#katana---httplistener-selfhost

我正在尝试自动执行此步骤:

  

netsh http add urlacl url = http://+:8080/ user = DOMAIN \ username

这是我的测试控制台应用程序:

class Program
{
    private static string localApiServerUrl = "http://+:9999";

    static void Main(string[] args)
    {
        RegisterLocalApiUrl();

        using (WebApp.Start<Startup>(localApiServerUrl))
        {
            Console.WriteLine("Running on {0}", localApiServerUrl);
            Console.WriteLine("Press enter to exit");
            Console.ReadLine();
        }
    }

    private static void RegisterLocalApiUrl()
    {
        string args = string.Format(
            @"http add urlacl url={0} user={1}\{2}", 
                localApiServerUrl, 
                Environment.UserDomainName, 
                Environment.UserName);

        ProcessStartInfo processStartInfo = new ProcessStartInfo("netsh", args)
        {
            Verb = "runas",
            CreateNoWindow = true,
            WindowStyle = ProcessWindowStyle.Hidden,
            UseShellExecute = true
        };

        Process.Start(processStartInfo).WaitForExit();
    }
}

运行时,我没有收到以管理员身份运行的提示,并且 Nancy http服务器无法启动此错误:拒绝访问

enter image description here

这看起来我的netsh命令没有运行以保留服务器地址。

任何想法如何解决这个问题?

0 个答案:

没有答案