服务总线处置对象

2024-01-08

我通过服务总线在 Azure 上使用消息队列架构。有时,当我尝试向队列发送消息时,它会失败。这是我得到的错误:

有时我会收到此消息

Message:Can't create session when the connection is closing. 

其他时候我收到此消息

Message:Cannot access a disposed object.
Object name: 'FaultTolerantAmqpObject`1'. 

请记住,这种情况不会一直发生。有时我会为服务总线创建数千条消息。我正在为发送到队列的每条消息分派一个异步任务

这是我的代码

Task.Run(() => new ServiceBusService().SendQueueMessage(busMessageObject));

服务总线类

public class ServiceBusService
{ 
    static string ServiceBusConnectionString = AzureUtils.SERVICE_BUS_CONNECTIONSTRING;
    const string QueueName = "eventqueue";
    static IQueueClient queueClient;

    public async Task SendQueueMessage(JObject jObject, DateTime? scheduledEnqueueTimeUtc = null)
    {
        string jsonObject = "";
        string scheduledTime = "";

        if(scheduledEnqueueTimeUtc.HasValue)
        {
            scheduledTime = scheduledEnqueueTimeUtc.Value.ToLongTimeString();
        }

        try
        {
            queueClient = new QueueClient(ServiceBusConnectionString, QueueName);
            var message = new Message(Encoding.UTF8.GetBytes(jObject.ToString()));

            if(scheduledEnqueueTimeUtc.HasValue)
                message.ScheduledEnqueueTimeUtc = scheduledEnqueueTimeUtc.Value;

            await queueClient.SendAsync(message);
            await queueClient.CloseAsync();
        }
        catch (Exception e)
        {
            Trace.TraceError($"{Tag()} " + e.InnerException + " " + e.Message);
        }
    }
}

这是因为我的 QueueClient 是静态的,并且多个线程正在使用它并处置它。使其不静态解决了我的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

服务总线处置对象 的相关文章

  • 当绑定值为 null 时出现 WPF 日期选择器验证错误

    我有一个 WPF 应用程序 其中使用绑定到实体框架 带有 SQL Server 实体的日期字段的日期选择器 我将其绑定如下
  • 使用 3.5 或 4.0 等旧版 .net 学习 C#.net、asp.net 的主要概念或基本概念是否重要? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 请向我建议是否需要学习c net和asp net的主要概念或基本概念 我需要与使用旧版本 net框架3 5或4 0的公司合作 在工作时我可以学习
  • ToUpperInvariant() – MSDN 的建议是否错误?

    In 在 NET Framework 中使用字符串的最佳实践 https msdn microsoft com en us library dd465121 v vs 110 aspx 字符串比较OrdinalIgnoreCase http
  • 测试项目和配置文件

    我的 Visual Studio 2008 解决方案中有这种设置 一个使用库 Lib1 需要 app config 文件中的一些配置条目 的 WCF 服务项目 WCFService 我有一个单元测试项目 MSTest 其中包含与 Lib1
  • 获取计算机的MAC地址

    我想使用c 访问计算机的mac地址 我使用以下代码来访问 mac 地址 但此代码存在一些问题 Code 1 foreach NetworkInterface nic in NetworkInterface GetAllNetworkInte
  • 在 UserClosing 和 this.close 上触发关闭事件

    我有一个表单 上面有一个 LogOutEvent 和一个表单关闭事件 这是代码 private void btnLogOut Click object sender EventArgs e DialogResult yesNo Messag
  • Winforms 风格/UI 外观和感觉提示

    从多年的 asp net 开发回到 winforms 应用程序 寻找有关如何 设计 winforms 的建议和技巧 类似于我在 asp net 中使用 CSS 母版页的方式 我对如何在一处更新某些类型的控件的字体 颜色感兴趣 如何保持布局的
  • 如何使用 Azure CLI 命令获取虚拟机的公共 IP 地址

    我想在 Azure bash 命令行中获取特定虚拟机的公共 IP 地址 到目前为止我已使用此命令 但它返回网络接口信息 az vm list ip addresses g dev rg n dev vm 返回值 virtualMachine
  • 正则表达式删除某些字符周围不需要的空格

    我正在尝试从 JavaScript 文件中删除一些不需要的空格 并在将文件发送到客户端之前使用 C 和 Regex 组合文件 我有一个JavascriptHandler处理 js 文件 效果很好 这是我用来 打包 JavaScript 的函
  • 使用成员作为实现者来实现接口

    我有实现 IA 的 A 类 现在我需要创建也应该实现 IA 的类 B B 类有 A 类的实例作为成员 有什么方法可以定义A的实例实现B类中的IA吗 interfase IA void method1 void method2 void me
  • XRDP 突然无法连接到 Azure VM

    The RDP doesnt connect to the Azure Linux VM suddenly the error is Password failed error problem connecting This is the
  • 简单的文档管理系统和API [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 哪些 .NET 编程语言有 CodeDom 提供程序?

    除了 C VB NET C 托管和 C CLI 和 F 之外 哪些 NET 编程语言有自己的 CodeDom 提供程序 我考虑过为 UnrealScript 制作一个 但我遇到了一些奇怪的问题 比如代码二进制运算符类型 http msdn
  • 如何在单个 Razor 视图中编辑多个模型

    我是 MVC3 的新手 我有多个模型 例如BussinessDetails ContactPerson ServiceArea Address以及更多型号 我有一个单一的视图页面 其中共享视图页面如Contacts BusinessDeta
  • SQL 查询在多用户环境中返回错误值

    一段时间以来 我们在我们的一个客户站点上发现了奇怪的数据完整性问题 经过大量调查后 我们现在已将其隔离为数据库调用 如果两个用户同时调用同一个存储过程 有时一个用户会得到另一个用户的结果 我们设置了一个测试来验证这一点 并且我们有一个循环
  • 自定义 WCF DataContractSerializer

    是否可以用我自己的序列化程序替换 Windows Communication Foundation 中的 dataContractSerializer 如果可能的话 我怎样才能实现这一目标 是的 您可以提供自己的序列化器实现 默认情况下 W
  • 如何隐藏 Windows 窗体中控件的大小调整手柄?

    我有一个 UserControl 想在设计时隐藏调整大小手柄 就像 TextBoxControl 一样 它只有两个手柄 左手柄和右手柄 文本框的高度是固定的 除非你说它是多行的 在这种情况下 文本框会显示所有九个大小调整手柄 您需要实现一个
  • 如何拦截 .Net 中第三方库对非虚拟方法的调用?

    我认为我需要的是 net 人们称之为 透明动态代理 的东西 但到目前为止我所看到的所有实现 Castle DynamicProxy Spring NET AOP 等 都要求我至少执行以下操作之一 将拦截的方法声明为虚拟方法 包装类并创建包装
  • 节点项目的 Azure git 部署失败

    我正在尝试将我的项目部署到azure 它正在失败 这些是我采取的步骤 git init git config core longpaths true git add git commit m initial commit 所有这些都有效 我
  • 中继命令和无参数执行方法

    我目前正在学习 WPF 和 MVVM 我想我已经了解了大部分内容及其工作原理 但我在使用 RelayCommand 或 DelegateCommand 时遇到了一些我不明白的问题 我认为这与代表的工作方式有关 请注意 下面的代码目前仅处于测

随机推荐

  • 程序化组件上的 Vue 反应式 props

    给定一个组件 Vue component my comp props input watch input function 以下的编程方法是什么
  • 在swift4中解析Json

    你好 我尝试解码 Json 结果 ID 80 时间 09 00 00 地位 status 0 kirpeja id 74 name Natalja image natalija255 png duration 00 20 00 status
  • 当我在 php 中尝试 Solr 时出现问题

    我在 PHP 中运行示例时遇到问题 代码如下
  • 永久删除 Beaglebone Black 服务

    如何从 BeagleBone Black Debian wheezy 发行版中永久删除 cloud9 bonescript gateone 等 我可以使用以下命令禁用它们 systemctl disable cloud9 service s
  • 按预期顺序运行依赖和独立测试方法

    我想按顺序执行测试方法 我在 testng xml 中使用了类 并将保留顺序设置为 true
  • 等待两个 Observable 完成

    我想在两个 Observables 返回值后调用一个方法 我做了一些搜索 看起来像forkJoin是我想要的 但我无法让它发挥作用 我知道这两个 Observables 都返回值 因为我在组件中的其他地方单独使用每个 Observables
  • 使用 id 访问 div,无需 getElementById 和 jQuery [重复]

    这个问题在这里已经有答案了 我相信 JS 中访问具有 id 的元素的标准方法是使用 getElementById 如果人们喜欢使用 jQuery 那么他们可能会使用他们的选择器 但最近我遇到了一个非常简单的代码示例 如下所示 HTML di
  • JQuery 自动完成:如何处理修改?

    我有自动完成功能 但如何处理修改 当用户修改原始选择时会发生什么 我有一个自动完成功能 当选择列表时 会填写其他字段 如果用户选择列表 然后尝试将其修改为新的内容 与我们数据库中的任何内容都不匹配 则其他字段需要清除 另一种提问方式 我如何
  • C# PCL 从文件读取

    因此 我正在编写一个面向 NET 4 5 Windows 8 和 Windows Phone 8 的可移植类库 我正在尝试从作为构建内容的项目一部分的文本文件中进行读取 我看到 StreamReader 在 PCL 中可用 但在给定文件路径
  • 如何使用 Linux 命令找到我的 shell 版本?

    我想了解使用 Linux 命令的 shell 版本 我尝试了以下命令 但它显示了我所在的 shell 的类型 Command echo SHELL Result bin bash 这将做到这一点 SHELL version 就我而言 输出是
  • 我可以使用 CSS 更改 svg 路径的填充颜色吗?

    我有以下代码 span span
  • 在 macOS 应用程序中以编程方式创建和定位 NSButton? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何以编程方式在 macOS Coc
  • 为什么 requestHeaders 未定义?

    我正在制作一个记录请求标头的 Chrome 扩展 在我的background js文件中我有这个代码 chrome webRequest onSendHeaders addListener function res res requestH
  • 反应选择下拉菜单在模式内打开

    我有一个自定义模式 里面有 2 个反应选择组件 模态主体已准备好自动滚动 以防内容超出其大小 但反应选择组件下拉列表会在模态内部打开并出现溢出 这正是我不想要的 没有溢出 它工作正常 我正在使用 CSS 模块 div this props
  • 更新序列中的多个值

    要获得更新了一个值的序列 可以使用 seq updated index value 我想为一系列元素设置一个新值 有这个库函数吗 我目前使用以下功能 def updatedSlice A seq List A ind Iterable In
  • 如何在C#中访问JS变量

    假设我有 div 500 div 上下文 asp net aspx 页面 如何允许 C 代码访问该值 我正在考虑一些类似于 jQuery 的事情 有没有更好的办法 使用隐藏的输入框
  • 为什么 Weak::new() 不起作用,而 Rc::downgrade() 起作用?

    我正在创建一个返回一个的函数Weak对特征对象的引用 在找不到对象的情况下 它是一个查找函数 我想返回一个空的Weak参考使用Weak new use std rc self Rc Weak use std cell RefCell pub
  • QNetworkAccessManager 发送 GET 两次

    我有一些类可以干扰 HTTP 服务器 这是有意义的代码部分 const QString someClass BASEURL QString http 127 0 0 1 8000 someClass someClass manager ne
  • 如何在luxon中创建momentLocaleData.firstDayOfWeek()?

    您立即可以致电 momentLocaleData firstDayOfWeek Luxon 是否有可能获得相同的功能 更新答案 Luxon 在版本中添加了本地化周支持3 4 4 现在你可以使用startOf https moment git
  • 服务总线处置对象

    我通过服务总线在 Azure 上使用消息队列架构 有时 当我尝试向队列发送消息时 它会失败 这是我得到的错误 有时我会收到此消息 Message Can t create session when the connection is clo