我是Azure的新手。有人知道如何在部署到Azure网站的网站上获得详细的错误消息吗?
我将SimpleMembership
添加到网站,现在注册和登录(发布)正在显示
抱歉,处理您的请求时出错。
我在家用电脑上连接数据库(连接没问题)。
azure ftp服务器上的 LogFiles
文件夹有一些文件,但我不知道如何使用这些信息。我希望我能在天蓝色的地方获得YellowScreen ......
答案 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