ASP.NET MVC Core 2.0のBuildWebHost()にオプションのメソッドを追加する正しい方法は何ですか?ASP.NET MVC Core 2.0 - Azure Webサイトへの配備のためにUserKestrel()を削除しますか?
私の開発環境にUseKestrel()を追加してHTTPSをローカルで有効にする必要がありますが、Azure Websitesがそれを気に入らないため、本番環境でこれを削除する必要があります。
背景:私は2.0にASP.NET MVCのコア1.1アプリを移行
。ここでの新しい2.0バージョンだ、
https://docs.microsoft.com/en-us/aspnet/core/migration/1x-to-2x/#update-main-method-in-programcs
その文書はWebホスト...それに基づいてを構築するために必要な新しいパターンの概要を示します。具体的には、私はProgram.csの変更に関するここで説明する手順に従っ私BuildWebHost開発に取り組んでいます()メソッド:
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseIISIntegration()
.UseContentRoot(Directory.GetCurrentDirectory())
.UseStartup<Startup>()
.UseKestrel(options =>
{
options.Listen(IPAddress.Loopback, 5001, listenOptions =>
{
listenOptions.UseHttps("mycert.pfx", "password");
});
})
.Build();
のAzureにデプロイした後、私は502.5エラーを得た、と私は、この発見クーズーでイベントログを見て:
Application 'MACHINE/WEBROOT/APPHOST/BEASTMUFFIN' with physical root 'D:\home\site\wwwroot\' failed to start process with commandline 'dotnet .\BeastMuffin.Web.dll', ErrorCode = '0x80004005 : e0434352.
特定のエラーコードを検索して読んでいると、これはおそらく私のProgram.csに関連していて、すでにUseKestrel()メソッド呼び出しが心配されていました。
私はその行をコメントして再公開し、それは完全に機能しました。
元の質問に戻る... Webホストを構築するための新しいパターンに従うことができますが、ローカルで実行する場合は、UseKestrel()メソッドとそのオプションを追加しますか?
二重に良い答えです。 :)まず、#if DEBUGチップをありがとう。私はショーンが素晴らしい仕事をしていると聞いた。私は、盗作告発を恐れて他人のコンテンツを見るのを嫌っているだけです。また、私はあなたがそれのようなメソッド呼び出しのチェーンの真ん中でそれを使用することができるとは思わなかった!第二に、個人的なメモのおかげで。私はとても多くの人々の学習経験の一部になれてうれしいです。あなたに最高の願いを! –
実際、私は後者のソリューションを最初に試しました。なぜなら、それは正しいと感じていたからです...しかし、IHostingEnvironmentはそれを渡すのですか?私の場合は、これを実行しようとするとエラーメッセージが表示されます:「プログラムには、エントリポイントに適した静的な「メイン」メソッドが含まれていません」 –
さらに、もう1つのこと...実験から、メソッドは次のようにしなければなりません:BuildWebHost()...そうしないと、EF Core 2ツールが機能しません。私の意見では、これはドキュメントで十分に強調されていませんでした。 –