【发布时间】:2015-08-15 12:35:45
【问题描述】:
我们正在创建一个与 CRM 2011 对话的 ASP.NET MVC 应用程序。我们正在使用 Xrm.Client.Services.OrganizationService。为此,我们有一个单例模式。
在负载下,我们看到了 ObjectDisposedException(无法访问已处置的对象)。我认为单身人士不是去这里的方式。
我正在考虑一个 [ThreadStatic] 单例,或者一个服务池,或者任何其他可能有帮助的东西。有人知道可以建立的 CRM 连接数量有任何限制吗?有人体验过disposed service吗?有人告诉我,一次连接到 CRM 的组织服务太多也会有问题,所以这就是为什么我没有为每次访问 CRM 创建一个新服务。
感谢您提供的任何帮助!如果需要进一步说明,请询问。
【问题讨论】:
-
Xrm.Client.Services.OrganizationService不是线程安全的,因此将它的单个实例包装在 Singleton 中的想法肯定会开始引起问题。我会看一下xrmlibrary.codeplex.com(无论您选择使用它还是自己推出),您都可以看到他们如何处理IOrganizationService的池实例,这正是您需要的。另请参阅此相关答案:stackoverflow.com/questions/12764225/… -
@Nicknow 你应该写这个评论作为答案
标签: c# singleton dynamics-crm-2011 crm threadstatic