You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Aspire集成测试中OpenIddict Introspection服务发现失效排查

问题原因与解决方案

你的问题出在OpenIddict Introspection客户端不会自动继承全局的HttpClient配置——哪怕你在ConfigureHttpClientDefaults里开启了服务发现,OpenIddict内部创建的HttpClient实例也不会自动应用这些设置,导致无法将https://accounts解析到随机端口的服务实例,最终出现连接拒绝错误。

解决步骤

方案1:给OpenIddict的HttpClient显式启用服务发现

直接在配置OpenIddict时,为其使用的HttpClient添加服务发现支持:

options.SetIssuer("https://accounts");
options.UseIntrospection();
options.UseSystemNetHttp(httpClientBuilder =>
{
    httpClientBuilder.AddServiceDiscovery();
});

方案2:使用命名HttpClient复用配置

先注册一个带有服务发现的命名HttpClient:

builder.Services.AddHttpClient("AccountsIntrospectionClient")
    .AddServiceDiscovery();

然后让OpenIddict使用这个命名客户端:

options.SetIssuer("https://accounts");
options.UseIntrospection();
options.UseSystemNetHttp("AccountsIntrospectionClient");

额外检查项

  • 确保集成测试的Aspire应用配置中,已将认证服务(accounts)添加为项目依赖,Aspire会自动为其注册包含随机端口的服务发现条目。
  • 确认开发证书配置正常,避免HTTPS连接因证书验证失败(Aspire集成测试通常会自动处理开发证书,若使用自定义证书需额外配置)。

内容的提问来源于stack exchange,提问作者James Hancock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 04:05:54