随着CRM Dynamics 365的发布,微软已经正式弃用2011年的肥皂终端,并正在积极推动他们的Web Api.
已弃用的Microsoft Dynamics CRM 2011端点
我想知道的是,这会如何影响我与CRM的关系.
目前,我使用Tooling库使用CrmServiceClient类和连接字符串创建OrganizationServiceProxy的实例.这是否必须改变,因为我有数十万行代码都引用IOrganizationService.
任何帮助,将不胜感激
我目前正在完成升级产品CRM SDK的过程,我遇到的主要变化是使用以下尝试和信任的方法连接到Xrm服务并创建我的IOrganizationService:
var connection = CrmConnection.Parse(connectionString);
var service = new OrganizationService(connection);
Run Code Online (Sandbox Code Playgroud)
我现在不得不使用Tooling命名空间中的CrmServiceClient:
CrmServiceClient conn = new Microsoft.Xrm.Tooling.Connector.CrmServiceClient(connectionString).OrganizationServiceProxy;
Run Code Online (Sandbox Code Playgroud)
现在这一切都很好,除了一个主要问题......记忆.
使用较旧的Xrm.Client方法,您可以指定服务配置实例模式(默认为ServiceConfigurationInstanceMode.PerName).这意味着如果同一个应用程序多次调用create,则会重用该服务.这使内存占用率降低.下图显示了在调用创建服务实例100次后分配的内存量
但是,使用较新的方法无法在任何地方设置此实例模式,并且无论您是否需要,似乎每次都会创建一个全新的连接.以下是同一测试的结果:

如您所见,每次新连接都会分配越来越多的内存.我无法看到我可以告诉它重用该服务的任何地方.
所以我基本上要问的是,我是以错误的方式解决这个问题吗?我应该自己创建和缓存一切吗?我缺少隐藏的课程/方法吗?任何帮助将不胜感激.