私は.NET Coreアプリケーションを持っています。 VS2017とKestrelでローカルに動作します。 IISの下でローカルに実行されます。しかし、サーバー上では502.5 - Process Failure
メッセージで開始できません。
イベントログで私はより多くの詳細を得ます:
物理ルート 'C:...\my-app-folder \'を持つアプリケーション '...'は、コマンドライン '"dotnet"。\ MyApp.dll'、ErrorCode = '0x80004005:80008083でプロセスを開始できませんでした。
アプリケーションの以前のビルドは同じサーバー上で正常に動作しますが、唯一の違いは、それらがVS2017RC(2&3)で公開されたことと、これが完全にリリースされたVS2017での最初のビルドです。
ErrorCode = '0x80004005 : 80008083.
はどういう意味ですか?
どうやって直すの?
VS2017 RCは新しいバージョンの.NET Core SDK( 。NET Core 1.0.4 SDK 1.0.1 )と一緒に出荷されるので、サーバー上のフレームワークも更新する必要があります。
エラーコード:0x80004005
はファイルが見つからないかアクセスできないことを意味します。
サブコード:80008083
はバージョンの競合があるようです。
このエラーは、異なるバージョンのdotnetをサーバーにインストールする必要があることを意味します。
私のために働いた可能性のある解決策は、私がこれをVisual Studioの私の発行プロファイルに追加することです:
<PublishWithAspNetCoreTargetManifest>False</PublishWithAspNetCoreTargetManifest>
これは、間違っている可能性があるターゲットマニフェストで設定された仕様に頼るのではなく、ホストが必要なファイルを使用してアプリを実行できるようにするためです。
Azure App Serviceに新しい.NET Core 2.0 Webアプリケーションを公開したところ、このエラーが発生しました。
サイトを襲う:
HTTPエラー502.5 - プロセスの失敗この問題の一般的な原因:アプリケーションプロセスは開始できませんでしたがその後停止しましたアプリケーションプロセスは開始されましたが失敗しました構成されたポートでlistenする
デバッグ:Azure Application InsightsとApp Serviceの使用 - 高度なツール( KUDU)ツール - デバッグコンソール - LogFilesフォルダの参照eventlog.xmlにログ行がありました。
物理ルートが 'D:\ home\site\wwwroot \'のアプリケーション 'MACHINE/WEBROOT/APPHOST/xxxx'は、コマンドライン 'dotnet。\ WebApp.dll'でプロセスを開始できませんでした、エラーコード= '0x80004005 :8000808c
<Provider Name="IIS AspNetCore Module"/>
<EventID>1000</EventID>
<Level>1</Level>
<Task>0</Task>
<EventData>
<Data>Application 'MACHINE/WEBROOT/APPHOST/xxxx' with physical root 'D:\home\site\wwwroot\' failed to start process with commandline 'dotnet .\WebApp.dll', ErrorCode = '0x80004005 : 8000808c.</Data>
</EventData>
</Event>
解決策
この答え:wwwrootフォルダを削除する Azureで== VSから再度公開すると、最初はレガシーなCore 1.1アプリがなかったにもかかわらずうまくいきました。
アプリ内でAzureコンソールを起動し、wwwrootフォルダーの内容を削除してから再展開します。
RMDIR wwwroot /S /Q
さらなるテストこれはテストに非常に役立ち、同じように従うとうまくいきますが、逸脱してもエラーを見つける必要があります。 https://docs.Microsoft.com/ja-jp/aspnet/core/tutorials/publish-to-Azure-webapp-using-vs
私もこの問題を抱えていて、私は自分の解決策を投稿しようと思っていました。これが意図されているかどうかわからないが、dotnet core 2があなたのプロジェクト名でスペース文字をサポートしているとは思わない。
IISを使用してサイトを実行しようとすると、 "Mikes App"というプロジェクトを作成して公開しました(ErrorCodeのため、.NET CoreアプリをIISで起動できません)。 = '0x80004005')。 web.configファイルでstdoutLogsを有効にしたところ、エラーが見つかりました。
コマンド "dotnet - 。\ Mikes"に一致する実行可能ファイルが見つかりませんでした
Web.configファイルが "。\ Mikes App.dll"であった引数の下のdllパスを正しく表示していたので、私は奇妙な発見
<aspNetCore processPath="dotnet" arguments=".\Mikes App.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
私はVisual Studioで新しいdotnet core 2プロジェクトを作成し、代わりに「Mikes-App」と名付け、それを再発行して私のIISサイトのディレクトリを更新しました。
それからサイトはうまくいった!
私にとっては、最新の.NET Core RuntimeとWindows Hosting Moduleがインストールされていることを確認する必要がありました。これらはすべて https://www.Microsoft.com/net/download/windows (最新バージョンは常にここで入手可能です。
具体的には、私はインストールしました:
あなたが本当にあなたのサーバー上でHost .Net Coreアプリだけをするのであれば、完全な.Net Framework 4.7.1ランタイムは必要ないかもしれませんが、私は安全のためにそれをインストールしました。
私は同じ問題に直面し、私は私のサーバーにdotnet cor 2をインストールしただけなので、このリンクをインストールすることによってあなたは他のバージョンのdot net coreであなたのコードを実行することができます。 IISを再起動することを忘れないでください。 https://download.Microsoft.com/download/6/A/2/6A21C555-B042-46EA-BBB4-368AACCB3E25/DotNetCore.1.0.8_1.1.5-WindowsHosting.exe
このエラーを修正するためにしなければならなかったのは、開発用コンピュータを再起動して、サイトを再コンパイルして再公開することだけでした。 VSが正しく応答していませんでした。
.net core 2.0の場合
dotnet abcd.dll
これは、WindowsHostingをインストールした後に確認できる事前制御です...