尝试连接到MS CRM v9时出现问题
我用这段代码连接:
Uri organizationUri = new Uri(OrgUrl);
AuthenticationCredentials authCredentials = new AuthenticationCredentials();
authCredentials.ClientCredentials.UserName.UserName = UserName;
authCredentials.ClientCredentials.UserName.Password = Password;
OrganizationServiceProxy organizationProxy = new OrganizationServiceProxy(organizationUri, null, authCredentials.ClientCredentials, null);
organizationProxy.EnableProxyTypes();`
var _service = organizationProxy;
这是Exception消息
HResult = -2146233079消息=元数据包含无法解析的引用:'https://myOrg.api.crm4.dynamics.com/XRMServices/2011/Organization.svc?wsdl&sdkversion=9' . InnerException:HResult = -2146233079 Message =基础连接已关闭:发送时发生意外错误 . InnerException:HResult = -2146232800 Message =无法从传输连接读取数据:远程主机强制关闭现有连接 . InnerException:ErrorCode = 10054 HResult = -2147467259 Message =远程主机强行关闭现有连接
之前有没有人遇到这个问题 . PS:此代码在同一项目中运行
2 回答
看起来您需要更新SDK对新9.0 SDK引用的引用 . SDK不再单一下载,而是必须使用NuGet(https://blogs.msdn.microsoft.com/crm/2017/11/01/whats-new-for-customer-engagement-developer-documentation-in-version-9-0/)
https://www.nuget.org/profiles/crmsdk包含您可能需要的所有SDK DLL的列表 . 特别是https://www.nuget.org/packages/Microsoft.CrmSdk.XrmTooling.CoreAssembly/包括我认为你真正需要的连接器 .
您可以使用NuGet控制台中的以下命令将其添加到项目中
如果您不需要特定版本,则可以使用
我通常在
Xrm.Tooling.Connector
命名空间中使用带有连接字符串的CrmServiceClient .var svc = new CrmServiceClient(connectionString);
请注意,CrmServiceClient有一个名为IsReady的布尔属性,这是检查它是否处于正确状态的好方法 .
以下是各种环境类型的示例连接字符串 . 这些是硬编码的示例,但您也可以将它们添加到App.Config中,如我的答案here所示 .
CRM 2016和Dynamics 365在线:
集成安全性的内部部署:
凭证的内部部署:
CRM 2016之前的内部IFD:
CRM 2016及更高版本的内部部署IFD(v8.0)