4

nservicebus を同期して呼び出す必要がある Web サービスがあります。これはどのように達成できますか?

4

3 に答える 3

1

クライアントは aspx ページではないため、非同期サンプルのようには使用できません。RIA サービスを使用しているため、wcf サービス自体の同期を制御できません。Wait と Pulse を使用して解決しました。

    [WebMethod]
    public string HelloWorld(int number)
    {
        string returnVal = "" ;
        var command = new Command { Id = number };
        lock(this)
        {                
            Global.Bus.Send(command).Register<ErrorCodes>(code => 
                {
                    lock(this)
                    {
                        returnVal = returnVal = Enum.GetName(typeof(ErrorCodes), code);
                        Monitor.Pulse(this);
                    }
                }
            );

            Monitor.Wait(this);                
        }
        return returnVal;
    }
于 2010-01-08T11:18:50.423 に答える
1

NServiceBus エンドポイントを Web サービスおよび wcf サービスとして公開するオプションもあり、期待どおりに同期的に呼び出すことができます。

于 2010-01-07T12:33:13.200 に答える
1

AsyncPages サンプルを見てください。同期させたい場合は、コールバックが完了するまでブロックしてください。

お役に立てれば!

于 2010-01-05T15:20:13.303 に答える