首页 > 解决方案 > 尝试连接到我的 Common Data Service Web api 时出现“System.AggregateException”

问题描述

这是我的代码:

string url = "https://myOrg.api.crm.dynamics.com";
string apiVersion = "9.1";
string webApiUrl = $"{url}/api/data/v{apiVersion}/";
var authParameters = AuthenticationParameters.CreateFromResourceUrlAsync(new Uri(webApiUrl)).Result;

我的最后一行代码失败了: 在此处输入图像描述

输出是:

MyAPITest.vshost.exe 错误:0:20​​19 年 11 月 5 日 19:20:17:-AuthenticationParameters:System.ArgumentException:响应中应有未经授权的 Http 状态代码 (401) 参数名称:响应抛出异常:'System.AggregateException ' 在 mscorlib.dll 中程序 '[5556] MyAPITest.vshost.exe' 已退出,代码为 -1 (0xffffffff)。

作为参考,我正在尝试使用快速入门指南连接到 Common Data Service。

编辑:在查看我看到的细节时: 在此处输入图像描述

错误

底层连接已关闭:发送时发生意外错误。

该错误下方的更多详细信息:

无法从传输连接读取数据:现有连接被远程主机强行关闭。

标签: c#apicds

解决方案


AuthenticationParameters:System.ArgumentException:响应中应有未经授权的 Http 状态代码 (401)

该错误通常是因为它缺少有效的身份验证凭据,并且请求尚未应用于目标资源。

此外,如果您不知道,AuthenticationParameters.CreateFromResourceUrlAsyncAPI 已过时,请在此处阅读更多内容。

考虑到这一点,我会考虑使用应该使用的AuthenticationParameters.CreateFromUrlAsync(Uri) 方法。它向没有提供的 url 发送 GET 请求Authenticate header如果收到 401 Unauthorized,此帮助程序将解析 WWW-Authenticate 标头以检索权限和资源。


推荐阅读