使用CrmServiceClient时,基于HTTP请求的连接与应用程序生存期连接

时间:2017-09-30 22:49:22

标签: .net web-applications asp.net-mvc-5 dynamics-crm-365

我正在使用ASP.NET MVC5应用程序而且我对CrmServiceClient不是很熟悉所以我需要帮助来决定哪种方法对我的应用程序更好。

很少解释如何构思应用程序,应用程序将拥有将在应用程序中运行的用户/代理。最大的问题是这应该怎么样?我应该为每个用户/代理创建他自己的CrmServiceClient实例/连接(每个用户在CRM中都是“systemuser”并提供他的凭据)或者我应该创建CrmServiceClient的一个实例/连接(作为管理员来自CRM)并完成所有操作。

基于HTTP请求的连接:
有了这种方法,我不确定CrmServiceClient如果对每一个人都会如何行动 请求每个用户创建新实例(打开新连接),当请求结束时我Dispose()它?我是否会为每个用户获取新实例,或者我将为之前已经建立连接的用户获取相同的实例?

应用程序有效期连接:
使用这种方法,我会在应用程序启动时创建CrmServiceClient的实例/连接,并在整个应用程序生命周期内保持打开状态,这样每个发出请求的用户都会使用相同的实例。这可能是一个很大的性能问题,因为它只有一个对CRM开放的实例/连接? 一段时间后,该实例/连接将如何运作?它会自动关闭还是保持打开状态? (为简单起见,我们假设应用程序需要运行数天,数月,数年等...)

1 个答案:

答案 0 :(得分:1)

不确定CrmServiceClient但我知道HttpClient应该在应用程序生命周期内保持打开状态(即不应在using结构中使用,也不应在每次请求后处理)。< / p>

您可以查看CrmServiceClient在引擎盖下使用的结构吗?