4

我有一个需要以同步方式调用 nservicebus 的 Web 服务。如何实现?

4

3 回答 3

1

客户端不是 aspx 页面,所以我不能像异步示例那样使用它。我正在使用 RIA 服务,所以我无法控制 wcf 服务本身的同步。我通过使用等待和脉冲解决了它:

    [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

查看 AsyncPages 示例。如果您希望它是同步的,只需阻塞直到回调完成。

希望这可以帮助!

于 2010-01-05T15:20:13.303 回答
1

还可以选择将 NServiceBus 端点公开为 Web 服务和 wcf 服务,并且可以按照您的预期同步调用它们。

于 2010-01-07T12:33:13.200 回答