2016-08-04 41 views
4

project.jsonに次のセクションを追加しました。Asp.Netコアアプリケーションのポート番号を変更するにはどうすればよいですか?

"commands": { 
    "run": "run server.urls=http://localhost:8082", 
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.Kestrel --server.urls http://localhost:8082", 
    "weblistener": "Microsoft.AspNet.Hosting --server WebListener --server.urls http://localhost:8082" 
    }, 

しかし、それはまだ "今のリスニング:http://localhost:5000" を示したときにdotnet myapp.dllを使用してそれを実行しますか?

ところで、他のマシンのクライアントはサービスにアクセスできますか?

+0

指定する[方法の可能性の重複ASP.NET Coreアプリケーションがホストされているポート?](http://stackoverflow.com/questions/37365277/how-to-specify-the-port-an-asp-net-core-application-is-hosted- on) – Set

+0

''コマンド ''プロパティは '' dotnet ''によってもう使用されません。なぜそれが動作しないのかを説明します。 – svick

答えて

15

はい外部IPアドレスをバインドすると、他のマシンからアクセスできます。例えば、http://*:80へのバインディング。 http://localhost:80へのバインディングは、127.0.0.1インターフェイスでのみバインドされるため、他のマシンからはアクセスできません。

Visual Studioがポートをオーバーライドしています。あなたはこのファイルを編集Properties\launchSettings.jsonポートVS変更したり、他のコードでそれを設定することができます。

 var host = new WebHostBuilder() 
      .UseKestrel() 
      .UseContentRoot(Directory.GetCurrentDirectory()) 
      .UseIISIntegration() 
      .UseStartup<Startup>() 
      .UseUrls("http://*:80") // <----- 
      .Build(); 

     host.Run(); 

外部設定ファイルを使用してステップバイステップガイドがhere可能です。

0

あなたもこの

 IConfiguration config = new ConfigurationBuilder() 
     .AddCommandLine(args) 
     .Build(); 
     var host = new WebHostBuilder() 
     .UseConfiguration(config) 
     .UseKestrel() 
     .UseContentRoot(Directory.GetCurrentDirectory()) 
     .UseStartup<Startup>() 
     .Build(); 

と、コマンドラインでアプリケーションを設定するようにコーディングすることができます。DOTNET実行--server.urlsます。http:// *:5555

+0

ニース!しかし、これはコマンドラインからのみ動作します。 Visual Studioからポートがオーバーライドされる方法/理由を知っていますか? –

+0

ConfigurationBuilderにはAddCommandLineが定義されていません。 カーテンがダウンしています。 – alerya

+0

@GerardoGrignoli Visual Studio内からアプリを起動する場合は、Properties/launchSettings.jsonファイルを使用してURLとポートを設定します。 –

関連する問題