【问题标题】:How to dispose static connections in another AppDomain如何在另一个 AppDomain 中处理静态连接
【发布时间】:2016-05-26 23:51:21
【问题描述】:

我有一个 Windows 服务应用程序,它在其他新的应用程序域中动态加载一些其他模块。问题是它们都使用相同的静态数据库连接。当我关闭服务时,我可以在主 AppDomain 中处理静态连接。但是我怎样才能立即处理其他 AppDomain 中的其他静态连接。问题是由于其他连接仍然存在,即使我完全停止它,服务应用程序仍然在任务管理器中运行。

谢谢

【问题讨论】:

    标签: c# appdomain


    【解决方案1】:

    问题是它们都使用相同的静态数据库连接。

    是的,这绝对是个问题。不要那样做。连接由 .NET 汇集并且创建起来并不昂贵,因此正确的模式是在需要它们时创建它们,使用它们,并在完成后处理它们。一种有效的方法是使用using 语句。

    一般来说,任何创建一次性对象的东西都负责处理它。由于您的一次性物品是静态的,因此无法知道是什么负责处理它。因此,您需要有逻辑来查看它是否已被释放、是否打开、是否为空等。将所有创建和释放逻辑保存在一个地方会更简洁。

    【讨论】:

    • 您好,斯坦利,非常感谢您的回复。场景是我正在使用 rabbitMq 发送数百万条消息。我应该为每条消息创建连接并处理它吗?听起来我需要像 .net 一样创建连接池?
    猜你喜欢
    • 2015-09-26
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-20
    • 2013-09-16
    • 1970-01-01
    相关资源
    最近更新 更多