gpt4 book ai didi

dynamics-crm-2011 - OrganizationServiceProxy 和生成的 xrm 服务上下文的线程安全

转载 作者:行者123 更新时间:2023-12-02 03:55:44 26 4
gpt4 key购买 nike

这是一个最佳实践问题。
按此 best practices article根据 MSDN, OrganizationServiceProxy 不是线程安全的。

如果您有一个多线程客户端应用程序,您正在其中创建一个
OrganizationServiceContext (基于每个线程),其构造函数接受一个
IOrganizationService 实例,然后传入 OrganizationServiceProxy 的全局实例
(即在“进程级别”分配一次的静态实例),这是否会导致线程问题和/或 OrganizationServiceProxy 实例故障,它会影响线程尝试在它们自己的 OrganizationServiceContext 的“本地”实例上执行的操作吗? ?

我相信它会,而且是 OrganizationServiceProxy 实例需要在“每个线程”的基础上创建,并且每个 OrganizationServiceContext 在多线程应用程序中需要它的 自己对应的 OrganizationServiceProxy 实例。

我发布此信息是为了确认上述内容。

另外,文章指出

The service proxy class performs the metadata download and user authentication by using the following class methods



IServiceManagement<IOrganizationService> orgServiceManagement =
ServiceConfigurationFactory.CreateManagement<IOrganizationService>(
new Uri(organizationUrl))

AuthenticationCredentials authCredentials = orgServiceManagement.Authenticate(credentials)

By caching the service management and authenticated credential objects, your application can more efficiently construct the service proxy objects more than one time per application session



如果我尝试手动执行上述 API 调用,在 Active Directory 身份验证模式下, authCredentials.SecurityTokenResponse为空为 indicated by MSDN

有没有办法只对 AD 模式执行一次身份验证并通过 已认证 SecurityTokenResponse 到新创建的 OrganizationServiceProxy 通过以下构造函数?

OrganizationServiceProxy (IServiceConfiguration, SecurityTokenResponse)

这样在构建 OrganizationServiceProxy 时,您就不必在“每个线程的基础上”进行身份验证和元数据下载。每个线程的实例,只需点击一次?

最佳答案

是的,如果您在单个 IOrganization 服务上尝试多线程操作,您肯定会遇到问题。

我们有两个基本的多线程 CRM 应用程序:批处理程序和另一个 Web 应用程序。对于批处理程序,我发现最好只有 10 个不同的线程,并在 10 个不同的线程之间批处理工作。因此,如果您要插入 100,000 条记录,请将它们分成 10 批,每批 10,000 条,每个线程都有一个组织服务。

我们还有一个网站可以进行大量 CRM 交互,因此没有真正的方法来批量处理请求,因此我们创建了一个 CRM 连接池来重用任何打开的、已经过身份验证的连接。

当然,如果您不使用某些系统服务帐户,这根本不起作用。

关于dynamics-crm-2011 - OrganizationServiceProxy 和生成的 xrm 服务上下文的线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12764225/

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