.NET 9 Aspire服务发现失效问题求助
解决Aspire隐式服务发现导致的404问题
你的问题出在硬编码了Aspire内部用于服务发现的特殊URL格式,未使用Aspire提供的HttpClient扩展自动解析服务地址。以下是具体修复方案:
1. 安装必要NuGet包
在wfd_AlgoliaDemo前端项目中,安装Aspire.Microsoft.Http.Client包——这是Aspire实现服务发现HttpClient的核心依赖。
2. 修改HttpClient注册代码
替换硬编码BaseAddress的代码,改用Aspire服务发现扩展:
builder.Services.AddSingleton<AlgoliaService>(); builder.Services.AddHttpClient<AlgoliaService>() .AddServiceDiscovery();
3. 移除硬编码的特殊URL
无需手动设置https+http://api作为BaseAddress,Aspire会通过隐式引用的服务名称("api")自动发现并解析正确的端点地址。
关键说明
https+http://api是Aspire内部标记「需通过服务发现解析地址」的特殊格式,本身并非可直接访问的URL。必须通过AddServiceDiscovery()扩展处理该标记,才能转换为实际可用的服务端点地址。
若需明确指定服务名称(多服务引用场景),也可显式配置:
builder.Services.AddHttpClient<AlgoliaService>(options => { options.BaseAddress = new Uri("http://api"); }) .AddServiceDiscovery();
内容的提问来源于stack exchange,提问作者Bithellio
相关产品推荐
相关产品推荐

