0

1つのWebロール(WCFサービス)と1つのワーカーロールを持つプロジェクトがあります。ワーカーロールは、平均してリソースの0.34%を使用します。単一のインスタンスを使用する単一のクラウドサービスで、WCFとワーカーの両方の役割をホストしたいと考えています。これはどのように行うことができますか?今のところ、ワーカーロールとWCFサービスはそれぞれ1つのインスタンスを使用します。

4

2 に答える 2

0

Sandrino の回答に問題はありませんが、質問からは、スレッド化が必要なようには見えません。私の答えはWorkerRole.cs、worker ロールからWebRole.csweb ロールにすべてを移動することです。

于 2012-11-18T08:28:49.277 に答える
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 で 1 つ以上の WorkerRoles をスレッドとしてホストすることで、リソースを節約できます。

于 2012-11-18T08:05:54.907 に答える