c# - 如何回收自托管 WCF 服务

标签 c# .net wcf azure azure-worker-roles

我在 Azure Worker 角色中托管 WCF 服务,类似于 this .

我希望能够定期“回收”WCF 服务主机。问题是,我假设该服务正在运行它自己的应用程序域,并且我无法轮询它以查找任何事件,也无法在辅助角色和 WCF 服务之间共享任何公共(public)数据。

作为引用,以下是托管的最低代码:

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

        host.Open

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

我想每 24 小时以某种方式“重新启动”主机,但我不确定如何/连接什么来实现这一点。

最佳答案

WCF 服务是否在您的辅助角色进程内运行(即所有内容都在 WaWorkerHost.exe 中运行)?在这种情况下,您可以调用 RoleEnvironment.RequestRecycle,或者只是让 Run() 方法退出。无论哪种方式都会导致 WaWorkerHost.exe 正常关闭,然后 Azure guest 代理将自动重新启动所有内容。

关于c# - 如何回收自托管 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18489917/

相关文章:

c# - 如何使用其控件 ID 获取子窗口?

c# - 带有自定义连接字符串的 EF 6 程序化迁移

c# - 是否有令人信服的理由在声明事件时使用 EventHandler<T> 委托(delegate)而不只是 Action<T>?

c# - raid 中的物理序列号 (windows)

c# - 不使用 CPU 的多线程任务?

wcf - 自托管 WCF Programattic HTTPS?

c# - 如何判断 "Lowest"编码可能?

c# - Powershell 如何通过 IIS 使用 WCF REST 服务?

wcf - IIS 托管 WCF 服务 + Windows 身份验证在 IIS + TransportCredentialOnly/Windows 身份验证在 basicHttpBinding

c# - ASP MVC : How get roles from ApplicationUser