使用.Net 4.5.2从Dynamics客户参与中检索数据

时间:2019-09-24 16:04:56

标签: c# .net dynamics-crm microsoft-dynamics

我们需要从c# .Net framework 4.5.2开发的应用程序中,从Dynamics客户参与中检索数据。我们知道,对于v9.0的动态Web API .Net framework 4.6.2,需要更高版本。我们需要知道的是,是否有任何方法可以使用我们的应用程序要求(也许使用其他API版本)从Dynamics客户参与中查询数据,因为由于其他原因我们无法更改.Net版本。我们也很感谢帮助找到有关此文档的帮助。

我们尝试使用HttpClient进行API调用。问题出在使用Microsoft.IdentityModel.Clients.ActiveDirectory的身份验证步骤中。

1 个答案:

答案 0 :(得分:0)

最可能的原因是您使用的TLS版本。 Dynamics 365需要TLS 1.2。

.p Framework通过以下方式支持

TLS

  • .Net Framework 4.0仅支持TLS 1.0
  • .Net Framework 4.5支持TLS 1.2,但只能通过显式设置TLS版本来实现。 (请参见下面的代码示例)
  • .Net Framework 4.6及更高版本本身支持TLS 1.2

如果您被迫使用.Net Framework 4.5,请在发出任何HTTP请求之前添加以下代码行。

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

如果不能更改代码,那么另一种方法是使用PowerShell脚本更新注册表项。这必须在运行该应用程序的每个设备上完成。 (但是,天蓝色可能会带来问题)。

64位

Set-ItemProperty -Path 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord

32位

Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Type DWord

第一种选择是迄今为止最简单的方法。