web-dev-qa-db-ja.com

2.2から3.1に移行されたASP.Net Coreソリューションは公開時に実行されません

これは、ASP.Net Core 2.2から3.1に更新した2番目のプロジェクトです。最初のものはうまくいきます。 2つ目はVisual Studio(2019)で正常に動作しますが、それを発行してdotnet CLIから実行すると、コンソールが無期限にハングし、コンソールに出力がなく、stdoutを有効にしており、出力ファイルはゼロバイトです。

ソリューションはIIS内でホストされており、IISを介して実行すると、アプリケーションイベントログに次のエントリが表示されます。

物理ルートが「D:\ wwwroot\InclusionService_UAT \」のアプリケーション「/ LM/W3SVC/2/ROOT」は、コマンドライン「C:\ Program Files\dotnet\dotnet.exe。\ InclusionService.Web.dll」でプロセスを開始できませんでしたステージ 'PostStartCheck'、ErrorCode = '0x8027025a'、割り当てられたポート12973、retryCounter '1'。

そして

物理ルートが「D:\ wwwroot\InclusionService_UAT \」のアプリケーション「/ LM/W3SVC/2/ROOT」は、コマンドライン「C:\ Program Files\dotnet\dotnet.exe。\ InclusionService.Web.dll」でプロセスを開始できませんでした複数の再試行。ポート「35033」へのバインドに失敗しました。複数の再試行からキャプチャされたstdoutおよびstderrログの最初の30K​​B文字:これ以上は表示されません

これは私のProgram.csで、他の移行したソリューションでもまったく同じです。

public static void Main(string[] args)
{
    var builder = new HostBuilder()
       .ConfigureWebHostDefaults(opt =>
       {
             opt.UseStartup<Startup>();
             opt.UseIISIntegration();
        });

    var Host = builder.Build();
    Host.Start();
}

出力があった方がデバッグははるかに簡単になりますが、何もする必要はありません。

2
Jason Goodwin

問題は、Program.csの既存のIHostではなく、新しいIWebHostを使用することでした。

IHostは、Razor Pagesを使用した.NET Core 3.1への移行で正常に機能しましたが、このソリューションはMVCアプリケーションであり、IIS with IWebHost

元のコードを次のように戻すと、アプリケーションはすぐにIISで起動しました。

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseIISIntegration();
}
1
Jason Goodwin

こんにちは私は同様の問題が上記のすべてのプロセスで機能しませんでした。新しい.net 3.1コアプロジェクトを作成してから、コードを2.2から新しく作成したプロジェクトに移行して、問題を解決して正常に実行する必要がありました。公開後、私はバージョン3.1でいくつかの新しいフォルダを作成しました。

誰かの助けになることを願っていますありがとう

0
Ahsanul

それで、私は現在同じことをしています。私はUseIIS()notUseIISIntegration()を使わなければなりませんでした。

以下がその抜粋です。

.ConfigureWebHostDefaults(webBuilder => 
{ 
    webBuilder.UseStartup<T>().UseIIS(); 
}

また、ホスティングバンドルがIISサーバーで更新されていることを確認してください。

0
b.pell