0

そのため、ローカル システムとして実行されている Windows サービスがあります。

次に、この Windows サービスが WCF サービスから開始されます。

私のマシンからは問題はなく、正常に動作します。
テスト コンソール アプリケーションから、ターゲット マシンで正常に動作
する Windows サービスから、ターゲット マシンで動作しません。また、例外をスローしません...

私は本当にこれにこだわっています。:(

これは許可でしょうか?

m_tknCancelToken = new CancellationTokenSource();

/**************************************************************************************/
/***  Create and start the task                                                     ***/
/**************************************************************************************/

m_tskService = Task.Factory.StartNew((object o) => 
{
    RunService();
}, 
m_tknCancelToken);

/**************************************************************************************/
/***  Set the handler when the task is cancelled or faulted                         ***/
/**************************************************************************************/

m_tskService.ContinueWith(
    TaskEndedHandler, 
    TaskContinuationOptions.OnlyOnFaulted);

m_tskService.ContinueWith(
    TaskEndedHandler,
    TaskContinuationOptions.OnlyOnCanceled);

そして、エラーをキャッチします。

private void TaskEndedHandler(Task tskTask)
{
    Log.Log(String.Format("{0} has ended", ServiceName), "WHS010CI");

    if (tskTask.Exception != null)
    {
        Log.LogEx(tskTask.Exception, "WHS0103E");

        if (tskTask.Exception.InnerExceptions != null)
        {
            foreach (Exception ex in tskTask.Exception.InnerExceptions)
            {
                Log.LogEx(ex, "WHS0104E");
            }
        }
    }

    if(tskTask.IsCanceled)
    {
        Log.Log(String.Format("[{0}] has been cancelled", ServiceName), "WHS0104W");
    }
}
4

1 に答える 1