web-dev-qa-db-ja.com

localhost以外のリクエストをリッスンするkestrel Webサーバーを取得するにはどうすればよいですか?

C#、asp.net 5、mvc 6アプリをWindows 2008サーバーに展開しました。 dnx webを起動しましたが、ポート5000をリッスンしており、ローカルコンピューターからアクセスすると正常に動作します。

ローカルホスト以外のリクエストをリッスンするにはどうすればよいですか?

追伸これは question はこれの複製ではありません... hosting.iniが実際に.ini形式である場合、RC1以前のasp.netを指します。今、それはJSONであり、実際にその中にあるべきものに関するドキュメントを見つけることができません。

P.P.S.実際の解決策は、リンクされた質問の受け入れられない answer にあり、大きな警告があります。手順:

  1. リンクされた回答ごとにproject.jsonを変更します。
  2. プロジェクトをサーバーに公開します。
  3. サーバーで...\approot\src\YourProjectフォルダーに移動し、そこでコマンドウィンドウを開きます。
  4. dnx webを実行します-失敗します
  5. dnu restoreを実行します
  6. 「dnu build」を実行します
  7. 「dnx web」を実行します-Webサーバーは正常に起動するはずです
67
AngryHacker

RC2では、project.jsonのコマンドセクションは使用されなくなりました。まだhosting.jsonを取得するためにKestrelを取得していませんが、新しいWebHostBuilderが作成および設定されるアプリケーションのMainでプログラムでポートを設定できます。以下のサンプルのように.UseUrls()メソッドを追加するだけです

    public static void Main(string[] args)
    {
        var Host = new WebHostBuilder()
            .UseUrls("http://0.0.0.0:5000/")
            .UseKestrel()
            .UseContentRoot(Directory.GetCurrentDirectory())
            .UseIISIntegration()
            .UseStartup<Startup>()
            .Build();

        Host.Run();
    }
30
Trygve

ドッカーコンテナー内にASP.NET Coreアプリケーションを配置しようとしている場合(これは、localhost以外のアドレスをリッスンする必要があるための私のユースケースでした)、このユースケースはMicrosoftによって既に用意されていることに注意してください。完全な栄光は https://hub.docker.com/r/Microsoft/aspnetcore/ で見ることができます

現在(v1.0.1)では、この問題を解決するための重要な魔法は、ソースDockerfileにurl環境変数設定が含まれており、アプリケーションがこれをオーバーライドしようとしないことです。 (実際、コンテナ化されたアプリケーションは、実行される環境について内部的に可能な限り主張するべきではありません。)

ENV ASPNETCORE_URLS http://+:80

アスタリスクではなくプラス記号に注意してください。リンクが良好である限り、答えを読むよりも上のdockerhubリンクにアクセスすることをお勧めします。バージョン1.1は間近に迫っていて、将来は再び変わるかもしれません。

コンテナを実行するときは、環境変数設定ごとにゲストポート80を公開するようにしてください。例えば:

docker run -d -p 8000:80 myapp
curl localhost:8000
5
GrandOpener

Asp.net core 2.1+を使用している場合、appsettings.jsonのconfigセクションを変更します。

 "Kestrel": {
"EndPoints": {
  "Http": {
    "Url": "http://0.0.0.0:5002"
  }
}

}、

1
menxin