Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
与nservicebus同步的消息_Nservicebus - Fatal编程技术网

与nservicebus同步的消息

与nservicebus同步的消息,nservicebus,Nservicebus,我有一个web服务,需要以同步方式调用nservicebus。 如何实现这一点?看看AsyncPages示例。如果希望它是同步的,只需阻塞,直到回调完成 希望这有帮助 还可以选择将NServiceBus端点公开为web服务和wcf服务,并且可以按照预期同步调用这些服务。客户端不是aspx页面,因此我不能像异步示例那样使用它。 我使用的是RIA服务,所以我无法控制wcf服务本身的同步化。 我用Wait和Pulse解决了这个问题: [WebMethod] public string

我有一个web服务,需要以同步方式调用nservicebus。
如何实现这一点?

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


希望这有帮助

还可以选择将NServiceBus端点公开为web服务和wcf服务,并且可以按照预期同步调用这些服务。

客户端不是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;
    }
[WebMethod]
公共字符串HelloWorld(整数)
{
字符串returnVal=“”;
var命令=新命令{Id=number};
锁(这个)
{                
Global.Bus.Send(命令).Register(代码=>
{
锁(这个)
{
returnVal=returnVal=Enum.GetName(typeof(ErrorCodes),code);
监视器。脉冲(本);
}
}
);
监视器。等等(这个);
}
返回值;
}