如何仅使用一个实例在单个云服务中托管辅助角色和Web角色?

时间:2012-11-18 07:49:20

标签: azure cloud cloud-hosting

我们有一个项目,其中包含一个Web角色(WCF服务)和一个辅助角色。工作者角色平均使用0.34%的资源。我们希望在单个云服务中使用单个实例托管WCF和辅助角色。如何才能做到这一点?目前,worker角色和WCF服务都使用一个实例。

2 个答案:

答案 0 :(得分:0)

您可以使用ThreadedRoleEntryPoint

public class WebRole : ThreadedRoleEntryPoint
{
    ...

    public override void Run()
    {
        List<WorkerEntryPoint> workers = new List<WorkerEntryPoint>();
        workers.Add(new MyWorkerRole());
        base.Run(workers.ToArray());
    }
}

您可以使用RoleEntryPoint,而不是从默认的ThreadedRoleEntryPoint继承,它允许您传递应作为后台线程启动的工作列表。这样,您可以通过在WebRole中托管一个或多个WorkerRoles作为线程来节省资源。

答案 1 :(得分:0)

Sandrino的答案没有错,但从问题来看,它看起来并不像需要任何线程。我的答案是将所有工作角色中的WorkerRole.cs移动到网络角色中的WebRole.cs