3

このような Azure Woker Role で WCF サービスをホストしています。

WCF サービス ホストを定期的に「リサイクル」できるようにしたいと考えています。問題は、サービスが独自のアプリ ドメインで実行されていると想定しているため、イベントをポーリングする方法がなく、ワーカー ロールと WCF サービスの間で共通データを共有できないことです。

参考までに、ホストするための最小限のコードを次に示します。

public override void Run()
{
    using(var host = new ServiceHost(typeof(MyService))
    {
        // Configure host here...

        host.Open

        while(true)
        {
            Sleep(1000);
        }
    }
}

24 時間ごとに何らかの形でホストを「再起動」したいのですが、それを達成するためにどのように/何をフックすればよいかわかりません。

4

1 に答える 1

5

WCF サービスはワーカー ロールに対してインプロセスで実行されていますか (つまり、すべてが WaWorkerHost.exe で実行されていますか)。その場合、RoleEnvironment.RequestRecycle を呼び出すか、Run() メソッドを終了させることができます。どちらの方法でも、WaWorkerHost.exe が正常にシャットダウンされ、Azure ゲスト エージェントがすべてを自動的に再起動します。

于 2013-08-29T20:05:51.140 に答える