Dataverse ServiceClient 引用 PreApplicationStartMethodAttribute 引发异常,对于 FetchXML 查询返回 null

问题描述 投票:0回答:1

我正在使用 Microsoft.PowerPlatform.Dataverse.Client NuGet 包 (1.1.32) 连接到我们的 Dynamics 365 应用程序。这是一个 .NET 7 应用程序。我们有一个较旧的 .NET Framework 应用程序可以成功使用 CrmServiceClient,但在较新的 .NET 版本上使用新库时,它无法使用 FetchXML 查询来查询数据。

using var serviceClient = new ServiceClient(connectionString);
var id = serviceClient.GetMyUserId();
string fetchXML = @"<fetch top='5'><entity name='account'><attribute name='name' /></entity></fetch>";
var queryResult = serviceClient.GetEntityDataByFetchSearch(fetchXML);

起作用的是前两行。我可以连接到 Dynamics,并且对 GetMyUserId() 的调用成功,但使用 FetchXML 语法(使用来自 learn.microsoft.com 的示例)返回 null。

在检查 ServiceClient 对象时,我看到 LastException 属性中有一个值:

“无法从程序集“System.Web,版本 4.0.0.0...”加载类型“System.Web.PreApplicationStartMethodAttribute”...”

System.Web.PreApplicationStartMethodAttribute exception

我尝试使用 Visual Studio 中的“添加 COM 引用”来添加 System.Web DLL,但失败了,可能是因为版本 4 和 7 之间存在一些严重的 .NET 兼容性问题。我不知道是否此错误是 FetchXML 查询失败或失败的原因 - 也许相关,也可能不相关。

Visual Studio Add COM Reference error

所以这个问题实际上是两个:

  1. 使用 FetchXML 从 Dynamics 返回数据的语法是否正确?我也愿意接受另一种获取数据的方式
  2. 如果该错误相关,我该如何修复它?
c# .net microsoft-dynamics
1个回答
0
投票

我从未找到此问题的解决方案 - 与 Dynamics CRM 的连接总是失败。为了解决这个问题,我所做的是将数据导入到我们的 Azure SQL 数据库中,然后能够毫无问题地将其从 Azure 提取到我们的 Web 应用程序中。

© www.soinside.com 2019 - 2024. All rights reserved.