Web API自托管主机 - 在所有网络接口上绑定

时间:2014-10-27 22:38:49

标签: c# asp.net asp.net-web-api2 self-hosting

如何在所有网络接口上进行Web API自主绑定?

我目前有以下代码。不幸的是,它仅绑定在localhost上。因此,从localhost以外的地方访问此服务器失败。

var baseAddress = string.Format("http://localhost:9000/"); 
            using (WebApp.Start<Startup> (baseAddress)) 
            {
                Console.WriteLine("Server started");
                Thread.Sleep(1000000);
            }

2 个答案:

答案 0 :(得分:36)

只需像这样更改基地址

        var baseAddress = string.Format("http://*:9000/"); 
        using (WebApp.Start<Startup> (baseAddress)) 
        {
            Console.WriteLine("Server started");
            Thread.Sleep(1000000);
        }

它应该正确绑定到所有接口。

答案 1 :(得分:5)

使用以下方法绑定它: -

netsh
netsh> http add urlacl url="http://+:9000/" sddl=D:(A;;GX;;;S-1-1-0)

如果您获得访问权限异常,请不要以管理员用户身份启动Visual Studio。请改为添加网址。以管理员身份启动命令控制台窗口并执行:

INDEX(A2:O2=41,)

SDDL会转换为您当前域/机器的“所有用户”。