连接到 Microsoft Dynamics 365 在控制台应用程序中工作但不在 Web 应用程序中工作
Connection to Microsoft Dynamics 365 working in console app but not in web app
我需要修改现有代码以连接到 Microsoft Dynamics 365 而不是本地安装。我目前正在使用 Microsoft.Xrm.Tooling.Connector,我们希望保留它,以便尽可能降低对代码的影响。
所以我更新了我的连接字符串以使用以下格式:
AuthType=ClientSecret;url=https://xxx.dynamics.com;ClientId=xxx;ClientSecret=xxx;
我已经将 nuget 包 Microsoft.CrmSdk.XrmTooling.CoreAssembly 更新到最新版本 9.1.0.64。其他相关包同时更新
我使用的代码是:
var client = new CrmServiceClient(connstring);
不幸的是,这在我的 .net 4.7.1 中不起作用 web.app
我收到以下错误:
CurrentAccessToken = 'CurrentAccessToken' 引发了 'System.NullReferenceException'
类型的异常
LastCrmError = "一个或多个错误发生。=> 发送请求时发生错误。=> 无法连接到远程服务器 => 连接尝试失败,因为连接方在一段时间后没有正确响应时间,或建立的连接失败..."
我也已经尝试添加以下行,但错误仍然存在:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
为了确保它与我现有的 Web 应用程序无关,我已经开始了一个新项目,并且包含了一个新的 Web 应用程序 (mvc) 和一个新的控制台应用程序。即使在那个新项目中,Web 应用程序无法运行,但控制台应用程序可以运行。
我看到的一个区别是,对于 CrmConnectOrgUriActual,控制台应用程序包含 XRMServices/2011/Organization.svc/web?SDKClientVersion=9.0.45.2156 但在网络应用程序中,这只是 XRMServices/2011/Organization.svc/
Web 应用程序中可能需要配置一些额外的东西吗?
有人可以帮我解决这个问题吗?
更新
我能够看到更多错误消息,它还提到了以下消息:AuthorityUnable to connect to CRM: Need a non-empty authority
我根据完整的错误详细信息对“需要非空权限”进行了新搜索。
其中一个结果是以下文章:https://www.kashanahmed.com/2020/06/we-were-trying-to-connect-dynamics-365.html
看来我的问题是我们公司的代理服务器引起的。
在 web.config 中添加以下行解决了我的问题
<system.net>
<defaultProxy useDefaultCredentials="true" enabled="true">
<proxy usesystemdefault="True" proxyaddress="http://theproxy" />
</defaultProxy>
</system.net>
我需要修改现有代码以连接到 Microsoft Dynamics 365 而不是本地安装。我目前正在使用 Microsoft.Xrm.Tooling.Connector,我们希望保留它,以便尽可能降低对代码的影响。
所以我更新了我的连接字符串以使用以下格式: AuthType=ClientSecret;url=https://xxx.dynamics.com;ClientId=xxx;ClientSecret=xxx;
我已经将 nuget 包 Microsoft.CrmSdk.XrmTooling.CoreAssembly 更新到最新版本 9.1.0.64。其他相关包同时更新
我使用的代码是:
var client = new CrmServiceClient(connstring);
不幸的是,这在我的 .net 4.7.1 中不起作用 web.app 我收到以下错误:
CurrentAccessToken = 'CurrentAccessToken' 引发了 'System.NullReferenceException'
类型的异常LastCrmError = "一个或多个错误发生。=> 发送请求时发生错误。=> 无法连接到远程服务器 => 连接尝试失败,因为连接方在一段时间后没有正确响应时间,或建立的连接失败..."
我也已经尝试添加以下行,但错误仍然存在:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
为了确保它与我现有的 Web 应用程序无关,我已经开始了一个新项目,并且包含了一个新的 Web 应用程序 (mvc) 和一个新的控制台应用程序。即使在那个新项目中,Web 应用程序无法运行,但控制台应用程序可以运行。
我看到的一个区别是,对于 CrmConnectOrgUriActual,控制台应用程序包含 XRMServices/2011/Organization.svc/web?SDKClientVersion=9.0.45.2156 但在网络应用程序中,这只是 XRMServices/2011/Organization.svc/
Web 应用程序中可能需要配置一些额外的东西吗? 有人可以帮我解决这个问题吗?
更新
我能够看到更多错误消息,它还提到了以下消息:AuthorityUnable to connect to CRM: Need a non-empty authority
我根据完整的错误详细信息对“需要非空权限”进行了新搜索。 其中一个结果是以下文章:https://www.kashanahmed.com/2020/06/we-were-trying-to-connect-dynamics-365.html
看来我的问题是我们公司的代理服务器引起的。
在 web.config 中添加以下行解决了我的问题
<system.net>
<defaultProxy useDefaultCredentials="true" enabled="true">
<proxy usesystemdefault="True" proxyaddress="http://theproxy" />
</defaultProxy>
</system.net>