2016-08-18 18 views
1
に公開

TLDRASPNETCOREは、VS 2015でローカルに動作しますが、エラー500のAzure

A以前に働いて(以前のバージョン)はアズールにプッシュが今非説明的なエラー500を与えるが、異なる2上で問題なく動作しますローカルPC。私は原因を特定することができず、助けを求めている。

詳細

私は、私が開発してきたASP.NET Webアプリケーションのコアを持っています。アプリケーションはローカルで問題なく実行されます(私のプライベートgitからプロジェクトをクローン作成した別のPCと同様)。

しかし、私はAzure Webアプリケーションに公開しました(これは、新しく作成されたWebアプリケーションのインスタンスです。)失敗している私はアプリを表示しようとすると、私はかなり一般的なエラー500ページを返されています...私は最終的に読んだ後、ログ・ストリームをチェックし

:(error 500

thisと紺碧のポータルを掘り起こし、より多くの情報を含むエラーページが返されましたが、それでもまだ役に立たないものはありません。 this SO answerに触発

:(error 500 with details

、私はAzureの「アプリケーション設定」ブレードにDevelopmentに私の環境フラグ(ASPNETCORE_ENVIRONMENT)を切り替えると、それに打撃を与えた(ので、私は結果を見ることができました。)私は何をためらいましたこれは私のSQL接続文字列がそこにあり、環境によって異なります(devはローカル、prodはazure sqlです)ので、ある時点で(dbにヒットしようとすると)エラーが保証されました。 メソッドのapp.UseDeveloperExceptionPage()による奇妙なエラーメッセージ...

IO error, missing application.Development.json

私の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をいどういうわけかそれらをフィルタリングするか、リリースまたはデバッグを選択したときにパッケージングの環境変数を設定しますか?パッケージ/パブリッシュログにそのことの兆候は見られませんでした。

publish settings screen

だから、私はその後、私はif (env.IsDevelopment()) {ブロックのうちapp.UseDeveloperExceptionPageライン(移動戻って「生産」に環境変数を切り替えて、「概要」ブレード(念インチ)からWebアプリケーションを再起動しますビルド、再パブリッシュ(「対象のファイルを削除する」チェックボックスをオンにしておくと、削除に時間がかかりますが、すべて安全ですが安全です)、ページがリフレッシュされ、私は戻ってきますジェネリックエラー500メッセージ(追加の詳細はありません)に戻ります。

:(error 500 with details

私はcustomErrorsis no longer relevantを知っています。私はこれまでにUseDeveloperExceptionPageの結果を見ています。また、私は地球上で何をしないのです

Diagnostic blade settings

...有効「詳細なエラー・メッセージ」を持っています!

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.jsonpublishIncludeセクションで波平、実現しました環境チェックの外で、私は開発者の例外ページを見ることができませんでした。しかし、今は他のファイルが公開されていない可能性があることを認識しています(環境に関係なく!)

答えて

0

publishOptionsアプリが存在する必要があるファイルはすべて.jsonではありません。

関連する問題