TLDRASPNETCOREは、VS 2015でローカルに動作しますが、エラー500のAzure
A以前に働いて(以前のバージョン)はアズールにプッシュが今非説明的なエラー500を与えるが、異なる2上で問題なく動作しますローカルPC。私は原因を特定することができず、助けを求めている。
詳細
私は、私が開発してきたASP.NET Webアプリケーションのコアを持っています。アプリケーションはローカルで問題なく実行されます(私のプライベートgitからプロジェクトをクローン作成した別のPCと同様)。
しかし、私はAzure Webアプリケーションに公開しました(これは、新しく作成されたWebアプリケーションのインスタンスです。)失敗している私はアプリを表示しようとすると、私はかなり一般的なエラー500ページを返されています...私は最終的に読んだ後、ログ・ストリームをチェックし
thisと紺碧のポータルを掘り起こし、より多くの情報を含むエラーページが返されましたが、それでもまだ役に立たないものはありません。 this SO answerに触発
、私はAzureの「アプリケーション設定」ブレードにDevelopment
に私の環境フラグ(ASPNETCORE_ENVIRONMENT
)を切り替えると、それに打撃を与えた(ので、私は結果を見ることができました。)私は何をためらいましたこれは私のSQL接続文字列がそこにあり、環境によって異なります(devはローカル、prodはazure sqlです)ので、ある時点で(dbにヒットしようとすると)エラーが保証されました。 メソッドのapp.UseDeveloperExceptionPage()
による奇妙なエラーメッセージ...
私のappsettings.Development.json
が存在しないと主張しています!どのように地球上でそれを出版のプッシュではしませんでしたか?私は、ファイルが実際にはないことがわかり/サイト/ wwwrootのにFTP'ing Startup.csから
関連する行...
public Startup(IHostingEnvironment env) {
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env.EnvironmentName}.json")
.AddEnvironmentVariables();
Configuration = builder.Build();
} // LINE 41 reported
(しかし、一般的なおよび生産のものがある。)VSをいどういうわけかそれらをフィルタリングするか、リリースまたはデバッグを選択したときにパッケージングの環境変数を設定しますか?パッケージ/パブリッシュログにそのことの兆候は見られませんでした。
だから、私はその後、私はif (env.IsDevelopment()) {
ブロックのうちapp.UseDeveloperExceptionPage
ライン(移動戻って「生産」に環境変数を切り替えて、「概要」ブレード(念インチ)からWebアプリケーションを再起動しますビルド、再パブリッシュ(「対象のファイルを削除する」チェックボックスをオンにしておくと、削除に時間がかかりますが、すべて安全ですが安全です)、ページがリフレッシュされ、私は戻ってきますジェネリックエラー500メッセージ(追加の詳細はありません)に戻ります。
私はcustomErrors
is no longer relevantを知っています。私はこれまでにUseDeveloperExceptionPage
の結果を見ています。また、私は地球上で何をしないのです
...有効「詳細なエラー・メッセージ」を持っています!
EDIT1:はlaunchSettings.json
...
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Production"
}
で "生産" に私の地元のdevのENVフラグを設定し...とすべてがまだ正常に動作します! Azureでまだエラー500!
EDIT2:appsettings.Development.json
が公開取得されなかった理由 私はなぜ、app.UseDeveloperExceptionPage()
を移動した後、まだはっきりしていない...
"publishOptions": {
"include": [
"wwwroot",
"Views",
"appsettings.json",
"appsettings.Production.json",
"web.config"
]
},
...それは私のproject.json
のpublishInclude
セクションで波平、実現しました環境チェックの外で、私は開発者の例外ページを見ることができませんでした。しかし、今は他のファイルが公開されていない可能性があることを認識しています(環境に関係なく!)