web-dev-qa-db-ja.com

Azure Webサイトでエラーの詳細を取得する方法

Azureは初めてです。 Azure WebにデプロイされたWebサイトで詳細なエラーメッセージを取得する方法を知っている人はいますか?

SimpleMembershipをウェブサイトに追加したところ、登録とログイン(投稿)が表示されています

申し訳ありませんが、リクエストの処理中にエラーが発生しました。

自宅のコンピューターのDBに接続しています(接続に問題はありません)。

Azure ftpサーバーのLogFilesフォルダーにはいくつかのファイルがありますが、この情報の使用方法がわかりません。 AzureでYellowScreenを入手できるといいのですが...

27
Cherven

次の2つのオプションがあります。

まず、ウェブ設定でカスタムエラーをオフにすることができます。これは迅速かつ汚いアプローチですが、少なくともあなたが探している情報を得るでしょう。完了したら、必ずカスタムエラーをオンに戻してください。 注:このメソッドは、スタックトレースを全世界に表示します。

<configuration>
  <system.web>
    <customErrors mode="Off" />
  </system.web>
</configuration>

次に、展開したマシンにリモートデスクトップを追加し、IIS Managerにアクセスして、サイトを参照します。そこに移動したら、エラーを再現すると、黄色い死の画面が表示されます。これを機能させるには、 詳細なエラーを有効にする する必要があります。

26
Robert Greiner

エラーログを格納するテーブルをdbに作成します。私はEFとLogsというテーブルを使用しています。

クラスを作成します。

public class MyAppExceptionFilter : IExceptionFilter
    {
        private MyApp.Models.ApplicationDbContext db = new Models.ApplicationDbContext();

        public void OnException(ExceptionContext context)
        {
            Exception ex = context.Exception;
            Log log = new Log();
            log.DateTime = DateTime.Now;
            log.LogText = "Exception happened, text:" + ex.Message;
            try
            {
                log.LogText +="User details:"+context.HttpContext.User.Identity.Name;
            }
            catch
            {
                log.LogText += "User details:none";
            }
            db.Logs.Add(log);
            db.SaveChanges();
        }
    }

App_StartフォルダーのFilterConfig.csに以下を追加します。

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
        {
            filters.Add(new HandleErrorAttribute());
            *filters.Add(new MyAppExceptionFilter());*
        }
0
Dovlet Mamenov