IISエラー502.5のASP.NET Core 1.0


112

サーバー(Windows 2012R2)を.Net Core 1.0 RTM以前のWindowsホスティングパックに更新しました.Net Core 1.0 RC2。私のアプリは私のPCで問題なく動作しますが、サーバーは引き続き表示されます。

HTTP Error 502.5 - Process Failure


Common causes of this issue:

The application process failed to start
The application process started but then stopped
The application process started but failed to listen on the configured port

以前はRC2バージョンで動作していました。何が悪いのかわからない。

これはすべてのイベントビューアのコメントです。

Failed to start process with the commandline 'dotnet .\MyWebApp.dll'. Error code = '0x80004005'.

最悪なのは、アプリのログが空であることです。つまり、これらのstdout_xxxxxxxxx.logファイルは完全に空で、すべて0バイトサイズです。

私は何をすべきか??ログに記録されていないときにエラーの原因を知るにはどうすればよいですか?



3
それはどのように関連していますか?エラーコードは明らかに異なります。IISを搭載した自分のPCで動作すると私が言ったことは言うまでもありません。
Vahid Amiri

1
最初に、あなたが報告しているのと同じコマンドラインとエラーコード- それについて言及しているので、おそらく関連していると述べましたFailed to start process with commandline 'dotnet ./bin/Debug/netcoreapp1.0/WebApplication2.dll', Error Code = '0x80004005'.。次に、リモートマシンではなくマシン上で実行されているという理由だけで、サーバー上で何かが異なることを示しています。アプリケーションがサーバーにデプロイされる方法を拡張できれば、それは役に立ちます。
ブレンダングリーン

あなたのアプリがあなたのPCで動作しているということはどういう意味ですか?私はrytですか?
Vijunav Vastivch 16

1
@ VSG24 asp.netドキュメントのこのセクションを見ましたか?IIS公開すると、一般的なエラーが一覧表示され、502.5エラーの理由がいくつか表示されます。
Hamid Mosalla 16

回答:


112

実行することで修正できました

"C:\ Program Files \ dotnet \ dotnet.exe" "C:\ fullpath \ PROJECT.dll"

コマンドプロンプトで、より意味のあるエラーが発生しました。

「指定されたフレームワーク 'Microsoft.NETCore.App'、バージョン '1.0.1'が見つかりませんでした。-アプリケーションの依存関係を確認し、C:\ Program Files \ dotnet \ shared \ Microsoft.NETCore.Appにインストールされているフレームワークバージョンを対象にしてください-次のバージョンがインストールされています。1.0.0-または、フレームワークバージョン「1.0.1」をインストールします。

ご覧のとおり、サーバーに間違ったNET Coreバージョンがインストールされていました。以前のバージョン1.0.0をアンインストールして正しいバージョン1.0.1をインストールした後、アプリケーションを実行できました。


2
NodeJSをインストールする必要があることを確認するためにこれを使用してなんとかしました...これは「はるかに意味のあるメッセージ」を与えるからです。
Tim Harker 2017

私がこれにどれだけの時間を費やしたかは言えません。ありがとうございました。私のエラーは、不足している証明書に関するものでした。なぜいくつかの正気な方法でこのエラーが発生しないのですか?
スプレーグ2017年

4
コマンドを教えてください。C:\ fullpath \ dotnetとは何ですか?アプリへのパスですが、dotnetとは何ですか?プロジェクトフォルダにdotnetファイルがありません
Jeremy Thompson

9
@JeremyThompson通常は次の場所にあるdotnet.exeのパスです。C:\ Program Files \ dotnet \ dotnet.exe
hatsrumandcode

1
.NET CORE 2.1.3へのアップデート後に正しい.NET SDK /ランタイムをインストールすることでこのエラーを修正した後、このエラーに遭遇しました。
Mike Bovenlander、2018

68

同じ問題がありましたが、私の場合、アプリケーションプールのユーザーIDの権限が不十分でした。asp.netドキュメントのIISページへの発行で、このエラーにはいくつかの理由がリストされています。

  • あなたは、プラットフォームを設定しなかったことをあなたは自己完結型のアプリケーションを公開した場合は、確認buildOptionsproject.json公開RIDとその競合。たとえば、x86のプラットフォームを指定せず、win81-x64(dotnet publish -c Release -r win81-x64)のRIDで公開します。プロジェクトは警告またはエラーなしで公開されますが、サーバーで上記のログに記録された例外で失敗します。
  • web.config processPath<aspNetCore>要素の属性を調べてdotnet、ポータブルアプリケーション用か、自己完結型アプリケーション用の。\ my_application.exeかを確認します。
  • ポータブルアプリケーションの場合dotnet.exe、PATH設定からアクセスできない場合があります。C:\Program Files\dotnet\システムPATH設定に存在することを確認します。
  • ポータブルアプリケーションの場合dotnet.exe、アプリケーションプールのユーザーIDからアクセスできない場合があります。AppPoolユーザーIDがC:\Program Files\dotnetディレクトリにアクセスできることを確認します。
  • .UseIISIntegration()アプリケーションののメソッドを呼び出して、IIS統合ミドルウェアを正しく参照していることを確認しますWebHostBuilder()
  • .UseUrls()Kestrelでセルフホスティングするときに拡張方式を使用している場合は、それがの.UseIISIntegration()拡張方式の前に配置されていることを確認してWebHostBuilder()ください。IISの背後でKestrelを実行する場合は、リバースプロキシにを.UseIISIntegration()設定し、Urlその値をで上書きしないようにする必要があります.UseUrls()

私の場合は4番目の理由で、アプリプールを右クリックして変更し、プロセスモデルの下の詳細設定で、十分な権限を持つユーザーにIDを設定しました。 アプリケーションプールのユーザーID


1
これは私が探していた答えです!私の場合、それもアプリケーションプールでした...
Armando Ramirez

3
ありがとうございました。私の場合、問題はdotnetへのパスにありました。システムイベントビューアでそのようなログが見つかりました:Failed to start process with commandline '"dotnet" .\PROJECT.dll', ErrorCode = '0x80070002'
0x49D1 2016

私は別の理由を追加します:サーバーがインターネットに接続していないため、「インストーラーはVC ++再頒布可能パッケージを取得できません。このパッケージをダウンロードできませんでした...したがって、手動でダウンロードする必要があります:リンクしてインストールしてください。
Paco Mendez、

4
dotnet私のパスにありましたが、それが認識されるためにサーバーを再起動する必要がありました。
Danny Cullen

私の場合、-frameworkオプションを提供する場合は、publishコマンドで--runtime値を指定する必要があります。それ以外の場合は、-frameworkを指定しないでください。デフォルトでランタイムが算出されます。
ゴメス

65

これをIISのハードリセットで機能させました(ホスティングパッケージをインストールしたばかりです)。

IISマネージャーで[再起動]を押すだけでは不十分であることがわかります。コマンドプロンプトを開いて「iisreset」と入力するだけです


また、UIのWebサーバールートノードで緑色のリサイクルiisを押しました。これにより、アプリプールのユーザー設定と組み合わせて解決しましたLocalSystem
JP Hellemons

マイケルに感謝...これも私の問題を解決しました。数時間答えを探していました。ありがとうございました!
birwin 2016

2
Tx!あなたの答えは、MSのドキュメントからこのを思い出しました「システムを再起動または実行するネット停止/ yがたに続くネットスタートW3SVCシステムパスに変更をピックアップするプロンプトコマンドから。」(.NET Core Windows Server Hosting bundleのインストール後)
Quinton Smith

私の問題も解決しました。ありがとう
Met-u

私のために働いた。おかげで:)
フスナインShabbir 2018

11

新しいサーバーを取得しました。今回はWindows 2008R2で、アプリは正常に動作します。

古いサーバーの何が問題だったのか、はっきりとは言えませんが、私には1つの考えがあります。

そのため、プラットフォームを考慮せずにアプリを以前にコンパイルしたためdll、ターゲットホストに.Net Core Windows Hostingパッケージがインストールされている場合にのみ機能するバージョンが提供されました。私の場合、それはインストールされ、それは問題ありませんでした。

アプリが機能しなくなった後、win7-x64ランタイムとしてコンソールアプリとしてコンパイルすることに決めました。今回exe、サーバー上でアプリを実行した瞬間、dllが見つからないというエラーでクラッシュしました。

The program can't start because api-ms-win-crt-runtime-l1-1-0.dll is missing

そのdllは、Visual Studio 2015のVisual C ++再頒布可能パッケージに含まれているUniversal Cランタイムからのものです。

そのパッケージ(x64とx86の両方)をインストールしようとしましたが、Windows Server 2012 R2で毎回失敗しました(理由はわかりません)。

しかし、新しいサーバーであるWindows Server 2008 R2にインストールしようとしたところ、正常にインストールされました。それがその背後にある理由かもしれませんが、それでも確かなことは言えません。


5

Webアプリを公開するときにも同じ問題が発生しました。まだ誰かがこの問題を抱えている場合は、{AppName} .runtimeconfig.jsonを変更して修正しました

    {
  "runtimeOptions": {
    "framework": {
      "name": "Microsoft.NETCore.App",
      "version": "1.1.2"
    },
    "configProperties": {
      "System.GC.Server": true
    }
  }
}

バージョンを"version": "1.1.2"から"version": "1.1.1"に変更してください。


5

私も同じ問題を抱えていました。

その正確なソースを見つけるために、web.configファイルにログインするように切り替えました。

<aspNetCore processPath="dotnet" arguments=".\MyWebService.dll" stdoutLogEnabled="**true**" stdoutLogFile=".\logs\stdout" />

MyWebServiceルートフォルダーに作成されたログサブフォルダー。

IISを再起動してAPIを実行しようとすると、エラーが発生し、適切なコアランタイムがありませんでした。インストールしたDotNetCore.1.0.5_1.1.2-WindowsHostingをダウンロードした後、エラーが発生しました。


3
IMO混乱を避けるために、 'true'値からアスタリスクを削除する必要があります。
AperioOculus

4

同じ問題があり、すべてのソリューションが機能しませんでした。この宝石を見つけて、他の人の役に立つなら私が通じると思いました。DLLが見つからないというエラーが発生するServer 2012 R2にインストールし、VS C ++ 2015を再インストールしようとするとエラーが発生します。修正方法は次のとおりです。

ファイルの C:\ProgramData\Package Cache\...\packages\Patch\x64\Windows8.1-KB2999226-x64.msuインストールに問題があるようです。adminコマンドプロンプトを開きます。

c:
mkdir tmp
mkdir tmp\tmp
move "C:\ProgramData\Package Cache\...\packages\Patch\x64\Windows8.1-KB2999226-x64.msu" c:\tmp
expand -F:* c:\tmp\Windows8.1-KB2999226-x64.msu c:\tmp\tmp
dism /online /add-package /packagepath:c:\tmp\tmp\Windows8.1-KB2999226-x64.cab

注:「...」を正しいフォルダ名に置き換えます。この後、VS C ++ 2015パッケージを再インストールします。


4

私も同様の問題を抱えており、シャーロックホームズを引用します

対象とした.NETフレームワークがサーバーにインストールされているかどうかを確認したところ、インストールされていないことがわかりました。4.6.2 .NET Frameworkをインストールしましたが、正常に動作しました。


4

VSプロジェクトが.NET Core 1.1.2に自動的にアップグレードされた後、本番サーバーでこの問題が発生しました。

ここから1.1.2 .netコアランタイムを本番サーバーに単にインストールしました:https : //www.microsoft.com/net/download/core#/runtime


私は同じ問題に出くわしましたが、新しくリリースされたネットコア2.0.6がありました。本番サーバーにネットコアSDK 2.0.6をインストールすることで修正
dodbrian

4

解決した私は、AZUREへの展開中に今日同じ問題を経験しました。次に、ローカルIISで同じことを試しましたが、同じ問題が発生しました。.NET COREを初めて使用するので、実際に解決するまでに数時間苦労しました。

私たちのソリューションでは、IISに公開した後、特に次の行の下にあるweb.confileファイルを確認しました <aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" arguments="-argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />

デプロイメントフォルダーでは、生成されたweb.configは次のようになります。<aspNetCore processPath="dotnet" arguments=".\Yodlee.dll -argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />

次に、Visual Studioソリューションで上記の構成を次のように変更してみてください。<aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />

新しい展開フォルダーでは、生成されたweb.configは次のようになります。<aspNetCore processPath="dotnet" arguments=".\Yodlee.dll" forwardWindowsAuthToken="false" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />

そして、これは私の問題を解決しました、それが役に立てば幸いです。


@Agniさん、これでうまくいきました。ありがとう。しかし、プロジェクトを再度Azureに発行しようとするたびに、プロジェクトが再構築され、web.configは自動的に元の構成に戻ります。問題の原因となっている部分は「-argFile IISExeLauncherArgs.txt」です。その解決策を見つけましたか?(私はasp.netコア2.0を使用しています)。
ロドリゴピレス

1
私の場合、に変更processPath="dotnet"する必要がありましたprocessPath="C:\Program Files\dotnet\dotnet.exe"。その後、うまくいきました。
vaheeds

3

開発マシンをCore 1.0.1に更新したときに同じ問題が発生しましたが、サーバーを更新するのを忘れていました。


私のために私はここからネットコアSDKを再インストールしました:microsoft.com/net/core#windows そしてそれはうまくいきました。
Jean、

1
VS2017はデフォルトで.NET Core 1.1になりました-アップグレードされたprojsをIISに公開する前にすべてのリモートサーバーを更新する必要があります。より役立つエラーメッセージ( ".NET core 1.1 not installed")が表示されるが、実行中dotnet .\YOURPROJDLL.dll
Coruscate5

3

.NET Core 2.0 APIをAWS EBに公開しようとしたときにHTTPエラー502.5が発生し、次のコードを.csprojに追加して解決しました。

  <PropertyGroup>
    <PublishWithAspNetCoreTargetManifest>false</PublishWithAspNetCoreTargetManifest>
  </PropertyGroup>

2

同じ問題がありました。アプリケーションプールIDをネットワークサービスアカウントに変更しました。次に、@ danielyewrightがgithubのコメントで述べたように、アプリケーションが正しく機能するようにweb.configでdotnet.exeへのパスを明示的に設定しました。パスを設定すると機能します。

ありがとう


2

私の場合それを共有するこのエラーは、私がproject.jsonを更新するのを忘れていたためでした:

"buildOptions": {
    "emitEntryPoint": true
  }

2

私は問題の同じエラーがあり、提案された回答のVSG24で説明されているのと同じ問題で、CMDに「dotnet」を入力すると厄介なエラーメッセージが表示されました。

api-ms-win-crt-runtime-l1-1-0.dllが見つからないため、プログラムを開始できません

Windows Server 2012 R2に次の2つの更新プログラム(および前提条件とリンクされている他のすべての更新プログラム)を手動でインストールしてこれを解決しました-MicrosoftのWebサイトでインストール手順を注意深く読んでください。

  1. KB2919355
  2. KB2999226

これが誰かを助けることを願っています。


2

Webアプリケーションのデバッグバージョンを公開しようとしたときに、同じ問題に直面しました。この一連のファイルにはweb.config、適切な属性値を持つファイルが含まれていませんでしたprocessPath

このファイルをリリースバージョンから取得しました。exeファイルへのパスに値が割り当てられました。

<aspNetCore processPath=".\My.Web.App.exe" ... />

2

私の場合、サーバーにインストールされているNet Coreバージョンに問題がありました。開発マシンと同じバージョンをインストールするだけで、すべて問題ありません:-)



2

サイトのアプリケーションに「編集権限」を追加し、物理ディレクトリにマッピングして、このルートフォルダーにアクセスできるWindowsユーザーを選択することで解決しました。(プライベートネットワーク)。


2

私の場合、とをインストールAspNetCore.2.0.6.RuntimePackageStore_x64.exeした後DotNetCore.2.0.6-WindowsHosting.exeサーバー再起動して、502の不正なゲートウェイとプロキシエラーなしでサーバーを機能させる必要があります。

更新:

再起動せずにそれを使用できる方法があります:https : //stackoverflow.com/a/50808634/3634867


2

管理者の資格情報でコマンドプロンプトを開く

次のコマンドを入力してEnterキーを押します

> IISRESET

または

管理者の資格情報でVisual Studio 2017を開く

パッケージマネージャーコンソールで次のコマンドを入力し、Enter キーを押します

PM > IISRESET

PM> IISRESET
Attempting stop...
Internet services successfully stopped
Attempting start...
Internet services successfully restarted

2

私にとっては、異なるバージョンの.Net Coreがインストールされていることが原因でした。私は私の開発サーバーと本番サーバーを一致させ、それはうまくいきました。


1

私にもこの問題がありました(エラーはVS 15と17の両方で発生しました)。ただし、VS15ではCONNECTION_REFUSEDエラーが返され、VS17では返されましたASP.NET Core 1.0 on IIS error 502.5

修正

  1. プロジェクトディレクトリに移動し、隠しフォルダー.vs(プロジェクトフォルダーdirにあります)を見つけます。(隠しファイル/フォルダーを表示することを忘れないでください)

  2. VSを閉じる

  3. .vs-folderを削除する
  4. 管理者としてVSを起動します(.vs-folderはVSによって再作成されます)

1

これが私が考えたもので、更新がインストールされた後、これは最近Windows 10で起こりました。私が収集したものから、「Project.dll」(asp.netコアプロジェクト)がウイルスのように動作することを想定してWindows Defenderのアップデートがインストールされたため、削除されました。

だから、ものをインストール/アンインストールする前に私が最初に行うことを提案することの1つは、「Project.dll」があるべき場所確認することです。

存在しない場合は、その場所にコピーします。

ファイルをコピーして戻すのが難しい場合は、Windows Defenderのプロジェクトフォルダーに除外を追加します。(ここでその方法を学びます

これはすぐにうまくいき、アプリケーションの複数のサーバーで繰り返しました。


1

私にとっては、Startup.csのconnectionStringはnullでした。

services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));

アプリケーションが接続文字列のappsettings.jsonを調べていなかったため、これはnullでした。

Program.csを次のように変更する必要がありました。

public static void Main(string[] args)
{
    BuildWebHost(args).Run();
}

public static IWebHost BuildWebHost(string[] args) =>
     WebHost.CreateDefaultBuilder(args)
     .ConfigureAppConfiguration((context, builder) => builder.SetBasePath(context.HostingEnvironment.ContentRootPath)
     .AddJsonFile("appsettings.json").Build())
     .UseStartup<Startup>().Build();

1

なぜこれがうまくいったのかはわかりませんが、Windows認証を使用していて、次のコードを入力しBuildWebHostましたProgram.cs

.UseStartup<Startup>()
.UseHttpSys(options =>
{
    options.Authentication.Schemes =
        AuthenticationSchemes.NTLM | AuthenticationSchemes.Negotiate;
    options.Authentication.AllowAnonymous = false;
})
.Build();

.UserHttpSysビットを削除した後、機能し、ドメインユーザーとして認証できます。

BuildWebHost 今のように見えます

public static IWebHost BuildWebHost(string[] args) =>
    WebHost.CreateDefaultBuilder(args)
    .UseStartup<Startup>()
    .Build();

私はaspnetコアでcookie認証を持っています。設定方法は?
kudlatiger 2018

@kudlatiger申し訳ありませんが、私はよく分からない-あなたの最善の策は、別々の質問を作成することです
Bassie

1

同じエラーが発生しましたが、Azureへの発行中にweb.configファイルが変更され、次の行が次のようになるという問題が見つかりました。

<aspNetCore processPath="bin\IISSupport\VSIISExeLauncher.exe" arguments="-argFile IISExeLauncherArgs.txt" forwardWindowsAuthToken="false" stdoutLogEnabled="false" startupTimeLimit="3600" requestTimeout="23:00:00" />

Productionの問題は、引数の内容です:"-argFile IISExeLauncherArgs.txt"

この問題は次の.NET Core SDK(現在プレビュー中)で対処されるようですが、現時点では、このブロックを.csprojファイルに追加することで回避できます。

<Target Name="bug_242_workaround" AfterTargets="_TransformWebConfig">
    <Exec Command="powershell &quot;(Get-Content '$(PublishDir)Web.config').replace(' -argFile IISExeLauncherArgs.txt', '') | Set-Content '$(PublishDir)Web.config'&quot;" />
  </Target>

これにより、web.configが変更され、発行の問題のある部分が削除されます。

リファレンス:https : //github.com/aspnet/websdk/issues/242

それが役に立てば幸い。


追加されたstartupTimeLimitおよびrequestTimeout属性の両方がツールのバグのようです。
マークG

1

公開設定を変更した後、私のために働いた。

ここに画像の説明を入力してください


申し訳ありませんが、組織で画像を表示できません。画像のダウンロードはブロックされます(ほとんどの組織で)。
オーギュスト、

0

64ビットのWindowsサーバー上のIISで32ビットのasp.netコアアプリを実行しようとしたことが原因で、同様の問題(Asp.Net Core 2.x)が発生しました。根本的な原因は、自動生成されるweb.config(プロジェクトに明示的に含まれていない場合、デフォルトではasp.netコアプロジェクトには含まれていません)にdotnet実行可能ファイルへの完全パスが含まれていないことです。64ビットマシンにホスティングバンドルをインストールすると、64ビットと32ビットのバージョンのdotnetがインストールされますが、パスはデフォルトで64ビットに解決され、32ビットasp.netコアアプリの読み込みに失敗します。ブラウザで502.5エラーが表示される場合があり、サーバーイベントログを確認すると、エラーコード0x80004005が表示される場合があります。コマンドプロンプトからdotnet.exeを実行して、そのサーバーにasp.netコアアプリケーションdllをロードしようとすると、「BadImageFormatException」や「

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <location path="." inheritInChildApplications="false">
        <system.webServer>
            <handlers>
                <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
            </handlers>
            <aspNetCore processPath="C:\Program Files (x86)\dotnet\dotnet.exe" arguments=".\My32BitAspNetCoreApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
       </system.webServer>
   </location>
</configuration>

0

同じ問題が発生しましたが、私の場合は、EFコアがappsettings.development.jsonファイルから接続文字列を読み取ろうとしたことが原因でした。私はそれを開いたところ、接続文字列がコメント化されていることがわかりました。

//{
//  "ConnectionStrings": {
//    "DefaultConnection": "Server=vaio;Database=Goldentaurus;Trusted_Connection=True;",
//    "IdentityConnection": "Server=vaio;Database=GTIdentity;Trusted_Connection=True;"
//  }
//}

次に、以下のようにコミットせずに問題を解決しました:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=vaio;Database=Goldentaurus;Trusted_Connection=True;",
    "IdentityConnection": "Server=vaio;Database=GTIdentity;Trusted_Connection=True;"
  }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.