gpt4 book ai didi

session - 在同步请求-响应模式中使用 session

转载 作者:行者123 更新时间:2023-12-03 03:15:52 25 4
gpt4 key购买 nike

我正在尝试让 session 在以下架构中工作。

  • 多个异构辅助角色,用于监视和处理来自队列 1 的请求,并将其响应发送到队列 2。
  • 一个前端 Web 角色,通过 REST 或 SOAP 接收来自外部的请求,将它们提交到队列 1 中,并等待队列 2 的响应。收到后,响应将返回给调用者。

Web 角色的作用是利用可扩展性,并允许在负载过高时动态创建辅助角色(这就是为什么整个 Ruth Goldberg 机器都离不开服务总线)。

我正在使用以下电话:

MessageSession sess = myQueueClient.AcceptMessageSession(mySessionId, TimeSpan.FromSeconds(timeoutPerSec));

接下来是:

BrokeredMessage bm = sess.Receive();

并且对 AcceptMessageSession 的调用崩溃并烧毁,但出现以下异常:

BR0012无法在不需要 session 的实体上创建 session 消息接收器。创建队列或订阅时确保将 RequiresSession 设置为 true 以启用 session 行为。

现在我将 RequiresSession 设置为 true:

        if (!_queueManager.QueueExists(clientID))
_queueManager.CreateQueue(clientID).RequiresSession = true;
else
_queueManager.GetQueue(clientID).RequiresSession = true;

但这没有帮助。

我做错了什么?

最佳答案

创建队列时,您必须在 QueueDescription 中(而不是在 QueueDescription)中将 RequiresSession 设置为 true 来创建队列已创建队列的

因此,在您的情况下,队列创建应类似于以下内容:

    if (!_queueManager.QueueExists(clientID))
{
QueueDescription queueDescription = new QueueDescription(clientID)
{
RequiresSession = true
};
_queueManager.CreateQueue(queueDescription);
}

关于session - 在同步请求-响应模式中使用 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26944293/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com