【发布时间】:2019-01-09 13:55:45
【问题描述】:
我们在面向 .NET 4.5.2 的普通控制台应用程序中使用以下代码连接到 Dynamics 365 CRM。
private static void Main(string[] args)
{
RetrieveAllEntitiesRequest req2 = new RetrieveAllEntitiesRequest();
req2.EntityFilters = Microsoft.Xrm.Sdk.Metadata.EntityFilters.Entity;
CrmServiceClient conn = new CrmServiceClient(
"svccrm@contoso.com",
CrmServiceClient.MakeSecureString("secret"),
"EMEA", "contoso",
useUniqueInstance: true,
useSsl: true, isOffice365: true);
try
{
//error with target framework 4.5.2
var resp2 = conn.Execute(req2) as RetrieveAllEntitiesResponse;
}
catch
{
string lastError = conn.LastCrmError;
}
}
packages.config 中有以下 nuget 包
<package id="Microsoft.CrmSdk.CoreAssemblies" version="9.0.2.5" targetFramework="net452" />
<package id="Microsoft.CrmSdk.Deployment" version="9.0.2.4" targetFramework="net452" />
<package id="Microsoft.CrmSdk.Workflow" version="9.0.2.4" targetFramework="net452" />
<package id="Microsoft.CrmSdk.XrmTooling.CoreAssembly" version="9.0.2.7" targetFramework="net452" />
<package id="Microsoft.IdentityModel.Clients.ActiveDirectory" version="2.22.302111727" targetFramework="net452" />
<package id="Newtonsoft.Json" version="6.0.8" targetFramework="net452" />
当我运行这段代码时,我得到一个 NullReferenceException Microsoft.Xrm.Tooling.Connector.CrmServiceClient.Execute(OrganizationRequest request),LastCrmError 为
无法登录到 Dynamics CRM************ 异常 - RetrieveAllEntities : 从 IOrganizationService 执行 (RetrieveAllEntities) 对 CRM 的请求 |=> 对象引用未设置为对象的实例。
只要我将目标框架更改为 4.6.2,它就可以正常工作。问题是我们将此代码托管在 SQL Server 集成服务包中,出于某种原因,在 Windows 2016 上,SSIS 总是回退到 4.5.2 框架。
我们也在对此进行调查,但现在问题仍然存在,如果 Microsoft.CrmSdk.XrmTooling.CoreAssembly 包应该与 4.5.2 一起使用(nuget 自述文件说是)或者这是 SDK 中的错误.
最新的 .NET 4.7.X 框架已安装在 2016 服务器和我的 win 10 开发机器上,但两者都面临同样的问题。
【问题讨论】:
标签: c# dynamics-crm .net-4.5 tls1.2 dynamics-365