0

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

4

2 回答 2

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,它允许您传递应该作为后台线程启动的工作人员列表。这样,您可以通过将一个或多个 WorkerRoles 作为线程托管在 WebRole 中来节省资源。

于 2012-11-18T08:05:54.907 回答
0

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

于 2012-11-18T08:28:49.277 回答