我是 Azure 的新手。有人知道如何在部署到 Azure Web 的网站上获取详细的错误消息吗?
我添加SimpleMembership
到网站,现在正在显示注册和登录(帖子)
抱歉,处理您的请求时出现了一个错误。
我正在连接到家用计算机上的数据库(连接没有问题)。
LogFiles
azure ftp 服务器上的文件夹有一些文件,但我看不到如何使用这些信息。我希望我能在 azure 上获得 YellowScreen ......
我是 Azure 的新手。有人知道如何在部署到 Azure Web 的网站上获取详细的错误消息吗?
我添加SimpleMembership
到网站,现在正在显示注册和登录(帖子)
抱歉,处理您的请求时出现了一个错误。
我正在连接到家用计算机上的数据库(连接没有问题)。
LogFiles
azure ftp 服务器上的文件夹有一些文件,但我看不到如何使用这些信息。我希望我能在 azure 上获得 YellowScreen ......
你有两个选择:
首先,您可以在 Web 配置中关闭自定义错误。这是一种快速而肮脏的方法,但它至少可以为您提供您正在寻找的信息。完成后请务必重新打开自定义错误。 注意:此方法将向全世界显示您的堆栈跟踪。
<configuration>
<system.web>
<customErrors mode="Off" />
</system.web>
</configuration>
其次,您可以远程桌面进入您部署的机器,转到 IIS 管理器,然后浏览到您的站点。一旦你在那里,重现错误,你会得到你正在寻找的黄屏死机。为此,您必须启用详细错误
您还可以通过将控制台日志传送到云外壳来获得相同的诊断信息。登录到天蓝色。调出控制台...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 将停止流式传输。
在 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());*
}