如何在Azure网站上获取错误详细信息

时间:2012-11-01 20:37:08

标签: asp.net-mvc azure simplemembership

我是Azure的新手。有人知道如何在部署到Azure网站的网站上获得详细的错误消息吗?

我将SimpleMembership添加到网站,现在注册和登录(发布)正在显示

  

抱歉,处理您的请求时出错。

我在家用电脑上连接数据库(连接没问题)。

azure ftp服务器上的

LogFiles文件夹有一些文件,但我不知道如何使用这些信息。我希望我能在天蓝色的地方获得YellowScreen ......

3 个答案:

答案 0 :(得分:26)

您有两种选择:

首先,您可以在Web配置中关闭自定义错误。这是快速而肮脏的方法,但它至少可以为您提供所需的信息。完成后,请务必重新打开自定义错误。 注意:此方法会将堆栈跟踪显示给整个世界。

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

其次,您可以远程桌面进入已部署的计算机,转到IIS管理器,然后浏览到您的站点。一旦你在那里,重现错误,你将得到你正在寻找的黄色死亡屏幕。为此,您必须Enable Detailed Errors

答案 1 :(得分:0)

在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());*
        }

答案 2 :(得分:0)

您还可以通过将控制台日志传送到 Cloud Shell 来获得相同的诊断信息。 登录 azure。调出控制台...azure CLI。

az webapp log config --name <app-name> --resource-group
myResourceGroup --application-logging filesystem --level information

要开始流式传输...

az webapp log tail --name <app-name> --resource-group myResourceGroup

现在只需刷新浏览器以查找错误。

Ctrl-C 回到 CLI 将停止流式传输。

我是从这里捡到的:Tutorial: Build an ASP.NET Core and Azure SQL Database app in Azure App Service