Session 在同步请求-响应模式中使用会话
我试图让会话在以下体系结构中工作Session 在同步请求-响应模式中使用会话,session,azure,servicebus,azureservicebus,Session,Azure,Servicebus,Azureservicebus,我试图让会话在以下体系结构中工作 多个异构工作角色,用于监视和处理来自queue1的请求,并将其响应发送到queue2 一个前端web角色通过REST或SOAP接收来自外部的请求,将它们提交到queue1,并等待queue2的响应。收到响应后,将其返回给调用者 web角色的存在是为了利用可伸缩性,并允许在负载过高时动态创建工作者角色(这就是为什么整个Ruth Goldberg机器没有服务总线是不可能的) 我正在使用呼叫: MessageSession sess=myQueueClient.A
- 多个异构工作角色,用于监视和处理来自queue1的请求,并将其响应发送到queue2李>
- 一个前端web角色通过REST或SOAP接收来自外部的请求,将它们提交到queue1,并等待queue2的响应。收到响应后,将其返回给调用者李>
MessageSession sess=myQueueClient.AcceptMessageSession(mySessionId,TimeSpan.FromSeconds(timeoutPerSec))代码>
然后是:
BrokeredMessage bm=sess.Receive()代码>
对AcceptMessageSession
的调用崩溃并烧毁,但出现以下异常:
BR0012A无法在不需要会话的实体上创建会话式消息接收器。创建队列或订阅以启用会话行为时,请确保将RequiresSession设置为true。
现在我将Requiresession设置为true:
if (!_queueManager.QueueExists(clientID))
_queueManager.CreateQueue(clientID).RequiresSession = true;
else
_queueManager.GetQueue(clientID).RequiresSession = true;
但这没有帮助
我做错了什么 创建队列时,您必须在QueueDescription
中创建一个RequiresSession
设置为true
的队列,而不是在已创建队列的QueueDescription
中
因此,您在创建队列时应与以下内容类似:
if (!_queueManager.QueueExists(clientID))
{
QueueDescription queueDescription = new QueueDescription(clientID)
{
RequiresSession = true
};
_queueManager.CreateQueue(queueDescription);
}