すべてのネットワークインターフェイスでWeb APIセルフホストバインドを行うにはどうすればよいですか?
現在、以下のコードがあります。残念ながら、これはlocalhostにのみバインドします。そのため、localhost以外からのこのサーバーへのアクセスは失敗しています。
var baseAddress = string.Format("http://localhost:9000/");
using (WebApp.Start<Startup> (baseAddress))
{
Console.WriteLine("Server started");
Thread.Sleep(1000000);
}
このようにベースアドレスを変更するだけです
var baseAddress = string.Format("http://*:9000/");
using (WebApp.Start<Startup> (baseAddress))
{
Console.WriteLine("Server started");
Thread.Sleep(1000000);
}
そして、すべてのインターフェースに正しくバインドする必要があります。
:-を使用してバインドします
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は、現在のドメイン/マシンの「すべてのユーザー」に変換されます。