web-dev-qa-db-ja.com

Web APIセルフホスト-すべてのネットワークインターフェイスにバインド

すべてのネットワークインターフェイスでWeb APIセルフホストバインドを行うにはどうすればよいですか?

現在、以下のコードがあります。残念ながら、これはlocalhostにのみバインドします。そのため、localhost以外からのこのサーバーへのアクセスは失敗しています。

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

このようにベースアドレスを変更するだけです

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

そして、すべてのインターフェースに正しくバインドする必要があります。

38
evilpilaf

:-を使用してバインドします

var baseAddress = string.Format("http://localhost:+:9000/"); 

アクセス例外が発生する場合は、管理者ユーザーとしてVisual Studioを起動しないでください。代わりにURL予約を追加してください。管理者としてコマンドコンソールウィンドウを起動して実行します。

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

SDDLは、現在のドメイン/マシンの「すべてのユーザー」に変換されます。

6
Daniel Müller