1

最近、MVC 3 から MVC 4 に、Visual Studio 2010 から 2012 にアップグレードしたアプリがあります。Azure にデプロイしようとしていますが、そこで実行したくないようです。IIS Express および Azure エミュレーターでローカルに動作します。Visual Studio とコマンド ラインの msbuild プロジェクトを使用して、イメージを問題なくビルドできます。私たちも問題なくデプロイします。

次に、デプロイメントの URL を参照すると、500 エラーが表示され、「探しているリソースに問題があり、表示できません」というメッセージが表示されます。これは YSOD ではないため、アプリを起動することさえできないと思われますが、上記のメッセージが唯一のフィードバックです。

私たちはそれを機能させるために多くのことを試みました:

  • 最新の Azure SDK にアップグレード済み
  • アプリのターゲット フレームワークを .NET 4.5 に変更しました
  • Windows Server 2012 インスタンスにデプロイ

何も役に立たないようです。何が間違っているのか正確に知っている場合は、私に教えてください。しかし、非常に役立つのは、ブラウジング時に表示される 500 エラー メッセージの詳細を見つけることです。どうすればそれを手に入れることができますか?

4

2 に答える 2

4

これをトラブルシューティングする最善の方法は、RDP で Azure VM に接続し、IE を開き、DIP を参照することです。DIP は、ipconfig から取得できる VM の内部 IP アドレス (10.xxx または 100.xxx アドレス) です。これにより、IIS が実行されているサーバーから Web サイトを参照するときに取得することが予想される、より詳細なエラー情報が得られます。詳細なエラー情報を取得すると、すぐに明らかになると思います。根本的な原因は、次の 2 つのいずれかである可能性があります。

  1. CopyLocal=true を設定していない DLL 参照。
  2. に適切なセクションがない web.config の要素<configSections>
于 2013-09-04T14:59:03.990 に答える
2

Azure の展開に関する問題のデバッグに役立ったヒントをいくつか紹介します。

  1. 発行時に Intellitrace をオンにします。パブリッシュ メニューの [設定] 画面の [詳細設定] で、[Intellitrace を有効にする] チェックボックスをオンにします。次に、VS 2012 のサーバー エクスプローラーに移動し、Azure インスタンスを見つけ、右クリックして [Intellitrace ログの表示] を選択します。

  2. @kwill が言ったように、RDP を有効にしてリモートでボックスに接続できます。ファイル システムをブラウズすると、Intellitrace ログ、実際にデプロイされた構成ファイルなどが見つかります。

  3. Azure SDK 1.8 から 2.0 へのアップグレードは大変でした。DLL の 100% が SDK 2.0 を参照していることを確認する必要があります。参照が不足していました。すべてのプロジェクトとリファレンスを確認し、それらが 2.0 を使用していることを確認することをお勧めします。

  4. アプリケーションでのログ記録を有効にして、Azure SQL データベースまたは Azure テーブル ストレージにログを記録します。これで何度か救われました。

一般に、Intellitrace ログに勝るものはなく、RDP でイベント ビューアー、IIS ログ、構成ファイルなどを通過できます。

于 2013-09-04T15:56:41.707 に答える