28

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

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

抱歉,处理您的请求时出现了一个错误。

我正在连接到家用计算机上的数据库(连接没有问题)。

LogFilesazure ftp 服务器上的文件夹有一些文件,但我看不到如何使用这些信息。我希望我能在 azure 上获得 YellowScreen ......

4

3 回答 3

27

你有两个选择:

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

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

其次,您可以远程桌面进入您部署的机器,转到 IIS 管理器,然后浏览到您的站点。一旦你在那里,重现错误,你会得到你正在寻找的黄屏死机。为此,您必须启用详细错误

于 2012-11-01T21:01:11.753 回答
0

您还可以通过将控制台日志传送到云外壳来获得相同的诊断信息。登录到天蓝色。调出控制台...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 将停止流式传输。

我在这里选择了这个:教程:在 Azure 应用服务中构建 ASP.NET Core 和 Azure SQL 数据库应用

于 2021-03-04T12:33:35.500 回答
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());*
        }
于 2015-09-17T10:25:59.967 回答