如果 applicationUrl 配置了不安全的传输(非 TLS http)协议,AppHost 将崩溃。
警告
这是一项安全功能,用于防止意外泄露敏感数据。 但是,在某些情况下,可能需要允许不安全的传输。
本文介绍如何在Aspire项目中允许不安全的传输。
症状
运行 Aspire 配置了 applicationUrl 不安全传输协议的项目时,可能会看到以下错误消息:
The 'applicationUrl' setting must be an https address unless the
'ASPIRE_ALLOW_UNSECURED_TRANSPORT' environment variable is set to true.
This configuration is commonly set in the launch profile.
如何允许不安全的传输
若要允许不安全的传输, Aspire请将 ASPIRE_ALLOW_UNSECURED_TRANSPORT 环境变量设置为 true。 此环境变量用于在使用不安全的传输协议配置applicationUrl 时控制 AppHost 的行为:
export ASPIRE_ALLOW_UNSECURED_TRANSPORT=true
或者,可以通过启动配置文件(launch profile)来控制这一点,因为它使得每个配置文件能够配置环境变量。 为此,请考虑 launchSettings.json 文件中的以下示例设置:
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"profiles": {
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:15015;http://localhost:15016",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"DOTNET_ENVIRONMENT": "Development",
"ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:16099",
"ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "https://localhost:17037"
}
},
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:15016",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development",
"DOTNET_ENVIRONMENT": "Development",
"ASPIRE_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:16099",
"ASPIRE_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17038",
"ASPIRE_ALLOW_UNSECURED_TRANSPORT": "true"
}
}
}
}
前面的示例显示了两个配置文件,https 和 http。
https 配置文件配置有安全传输协议,而 http 配置文件配置了不安全的传输协议。
ASPIRE_ALLOW_UNSECURED_TRANSPORT 环境变量设置为 true 配置文件中的 http,以允许不安全的传输。