0

ClickOnceを使用して展開するWinformアプリがあります。このアプリは、ドメイン内の任意のシステムにインストールして動作しますが (私のUserLogin )、通常のDomain Userでは起動しません。

いかなる種類のエラーも発生せず、無期限にそこに留まります。以前機能していましたが、今は機能しないという変更点について途方に暮れています。

私は何を探すべきかについて完全に途方に暮れています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
        {
        }
    }
4

1 に答える 1

1

パラディン、あなたはそれをもう少しよく診断する必要があります。そして、あなたは自分でそれを見つけるかもしれません。そこで私は、「何が起こっているのかを知るにはどうすればよいか?」という質問をします。

  1. いくつかの可能性のあるコースを削除します。再インストールします (ドメイン ユーザーによる)。別のユーザーのために (によって) インストールされたものを実行しようとしていませんでしたね?

  2. (少し隠れている) インストール フォルダーを見つけて、すべてのアセンブリがそこにあることを確認します。

  3. アプリはまったくロードされましたか? タスクマネージャーを使用します。

  4. 読み込まれたら、Sytem.Diagnostics.Debug.Print() を使用して診断ログの追加を開始します。出力はDebugViewで確認できます。

于 2009-09-28T20:11:05.493 に答える