Azureは初めてです。 Azure WebにデプロイされたWebサイトで詳細なエラーメッセージを取得する方法を知っている人はいますか?
SimpleMembership
をウェブサイトに追加したところ、登録とログイン(投稿)が表示されています
申し訳ありませんが、リクエストの処理中にエラーが発生しました。
自宅のコンピューターのDBに接続しています(接続に問題はありません)。
Azure ftpサーバーのLogFiles
フォルダーにはいくつかのファイルがありますが、この情報の使用方法がわかりません。 AzureでYellowScreenを入手できるといいのですが...
次の2つのオプションがあります。
まず、ウェブ設定でカスタムエラーをオフにすることができます。これは迅速かつ汚いアプローチですが、少なくともあなたが探している情報を得るでしょう。完了したら、必ずカスタムエラーをオンに戻してください。 注:このメソッドは、スタックトレースを全世界に表示します。
<configuration>
<system.web>
<customErrors mode="Off" />
</system.web>
</configuration>
次に、展開したマシンにリモートデスクトップを追加し、IIS Managerにアクセスして、サイトを参照します。そこに移動したら、エラーを再現すると、黄色い死の画面が表示されます。これを機能させるには、 詳細なエラーを有効にする する必要があります。
エラーログを格納するテーブルを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());*
}