0

Windowsサービスでサービスをホストしようと思っているのですが、タイトルに書いてある問題で悩んでいます。誰かが同様の問題を抱えていましたか?ありがとう

アップデート

問題は、WinForms/WPF/Win Service アプリで例外をスローすると、プログラムがクラッシュし、再起動する必要があることです。

4

2 に答える 2

1

例外によってサーバーが常にクラッシュするとは限りません。予期しないサーバー側の例外でさえ、クライアントに転送されます。ただし、チャネルに障害が発生しており、予想よりも深刻であると考えられています。

基本的な考え方は、インターフェイス コントラクトに予想される例外 (障害) を含めることです。その方法はたくさんありますが、こちらに紹介記事があります。

そしてもちろん、サーバーで適切な例外処理が必要です。

于 2011-04-09T19:15:46.413 に答える
0

Host アプリケーションの Main メソッド エントリ ポイントの ThreadException イベントにフックして、それが FaultException であるかどうかを確認することにより、例外をインターセプトすることができます。

static class Program
{
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());

        // Hook to this event below
        Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
    }

    static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
    {
        if (e.Exception is FaultException)
            return; // Bypass FaultExceptions;
        else
            throw e.Exception; // Throw otherwise
    }
}
于 2011-04-09T21:21:25.673 に答える