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