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

Aspire集成测试中获取Azurite Blob连接字符串的问题

Aspire.Hosting.Testing集成测试中Azure Blob存储连接字符串获取问题

问题场景

使用Aspire.Hosting.Testing开展集成测试,SQL Server已配置成功,但Blob存储部分遇到问题:需要将Blob端点的连接字符串传入环境参数。

当前配置Blob容器的代码:

var builder = DistributedApplication.CreateBuilder(args);
var storage = builder
    .AddAzureStorage("storage")
    .RunAsEmulator();

尝试通过以下代码设置环境变量时触发错误:

context.EnvironmentVariables["CustomOptionObject:ConnectionString"] = storage.Resource.BlobEndpoint;

错误堆栈信息:

Failed to apply environment variable 'CustomOptionObject:ConnectionString'. A dependency may have failed to start.
System.InvalidOperationException: No output for blobEndpoint
   at Aspire.Hosting.Azure.BicepOutputReference.get_Value() in /_/src/Aspire.Hosting.Azure/AzureBicepResource.cs:line 400
   at Aspire.Hosting.Azure.BicepOutputReference.GetValueAsync(CancellationToken cancellationToken) in /_/src/Aspire.Hosting.Azure/AzureBicepResource.cs:line 388
   at Aspire.Hosting.ApplicationModel.ExpressionResolver.EvalValueProvider(IValueProvider vp) in /_/src/Aspire.Hosting/ApplicationModel/ExpressionResolver.cs:line 106
   at Aspire.Hosting.ApplicationModel.ExpressionResolver.ResolveInternalAsync(Object value) in /_/src/Aspire.Hosting/ApplicationModel/ExpressionResolver.cs:line 182

已在项目构建器中添加.WaitFor(storage),需要解决如何正确获取Blob端点的连接字符串引用。

解决方法

  • 获取完整连接字符串:使用storage.GetConnectionString()方法获取包含端点、账户名、密钥的完整连接字符串,该方法会自动适配模拟器环境,避免解析错误。修改后的代码:
context.EnvironmentVariables["CustomOptionObject:ConnectionString"] = storage.GetConnectionString();
  • 仅获取Blob服务端点URL:如果只需要端点地址,使用storage.Resource.BlobServiceUri属性替代BlobEndpoint,该属性在模拟器运行时能正确返回可用的端点值:
context.EnvironmentVariables["CustomOptionObject:BlobEndpoint"] = storage.Resource.BlobServiceUri;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 11:12:41