我有一个使用ClickOnce部署的Winform应用程序,它可以在我们域中的任何系统上安装并为我(我的UserLogin )工作,但不会为普通的域用户启动。
它不会产生任何类型的错误,只是无限期地坐在那里。它曾经可以工作,但我不知道发生了什么变化,现在它不起作用了。
我完全不知道要寻找什么。我尝试使用DomainUser并将它们提升到DomainAdmin(像我一样),但没有任何改变。我知道这有点含糊,但我正在寻找人们可能对此有任何见解。
如何排除故障?
我应该在哪里寻找?
任何事情都会受到赞赏。
我发现是什么导致了“挂起”,但我仍然不明白为什么。
try
{
HUD.CurrentUserRole = new ConnectBLL.BLL.RoleAccess(HUD.CurrentUser);
sbrHUD_SecureRole.Text += " " + HUD.CurrentUserRole.RoleDescription;
}
catch (Exception exception)
{
exception.LogError(this);
}
我的测试用户 Malcolm Reynolds 没有 RoleAccess() 返回的角色。我不明白为什么它挂在那里而不是抛出错误。
LogError
是一种扩展方法,可将异常通过电子邮件发送到我的邮箱,并以更用户友好的方式显示错误。
public static void LogError(this Exception exception, DevExpress.XtraEditors.XtraForm whichForm)
{
var fileName = GetDesktopImage(whichForm);
SendExceptionMail(exception, fileName);
ExceptionMessageBox box = new ExceptionMessageBox(exception);
box.Show(whichForm);
}
private static void SendExceptionMail(Exception exception, String fileName)
{
try
{
SmtpClient smtpClient = new SmtpClient("WWCMAIL");
var innerExceptionMessage = String.Empty;
if (exception.InnerException != null)
{
innerExceptionMessage = exception.InnerException.Message;
}
var stackTrace = exception.StackTrace;
var source = exception.Source;
MailMessage message = new MailMessage
{
From = new MailAddress("MATRIX@wwCares.org"),
Subject = Environment.UserName + ": MATRIX Application Error",
Body =
"***THE EXCEPTION***\n" + exception.Message + "\n\n***THE INNER EXCEPTION***\n" +
innerExceptionMessage + "\n\n***THE STACK TRACE***\n" + stackTrace + "\n\n***THE SOURCE***\n" + source
};
Attachment attachment = new Attachment(fileName);
message.Attachments.Add(attachment);
message.To.Add("PSchaller@wwCares.org");
message.To.Add("HDesk@wwCares.org");
smtpClient.Send(message);
}
catch
{
}
}