c# - 尝试连接到我的 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:2019 年 11 月 5 日 19:20:17:-AuthenticationParameters:System.ArgumentException:响应中应有未经授权的 Http 状态代码 (401) 参数名称:响应抛出异常:'System.AggregateException ' 在 mscorlib.dll 中程序 '[5556] MyAPITest.vshost.exe' 已退出,代码为 -1 (0xffffffff)。
作为参考,我正在尝试使用快速入门指南连接到 Common Data Service。
错误
底层连接已关闭:发送时发生意外错误。
该错误下方的更多详细信息:
无法从传输连接读取数据:现有连接被远程主机强行关闭。
解决方案
AuthenticationParameters:System.ArgumentException:响应中应有未经授权的 Http 状态代码 (401)
该错误通常是因为它缺少有效的身份验证凭据,并且请求尚未应用于目标资源。
此外,如果您不知道,AuthenticationParameters.CreateFromResourceUrlAsync
API 已过时,请在此处阅读更多内容。
考虑到这一点,我会考虑使用应该使用的AuthenticationParameters.CreateFromUrlAsync(Uri) 方法。它向没有提供的 url 发送 GET 请求Authenticate header
。如果收到 401 Unauthorized,此帮助程序将解析 WWW-Authenticate 标头以检索权限和资源。
推荐阅读
- python - 用 RStudio 之类的东西开发 Python
- javascript - 如何只允许一个活动的 useState
- python - 单击按钮后如何将 QSpinBox 中的数据保存到变量中?
- c++ - CMakeLists.txt:4 处的 CMake 错误(add_executable)
- java - 弹簧数据。使用本机插入查询保存 BigDecimal 属性
- android - ConstraintLayout 与父级不完全匹配
- c# - 是否可以将 Database First EF 6 与 SKIP LOCKED 命令一起使用?
- azure - 无法在 Azure CosmosDB (MongoDB) 中写入
- javascript - Express Validator:如何根据其他字段进行条件验证?
- html - Angular 9 [disabled] /[attr.disabled]/[attr.readonly] 在选择时不起作用