共用方式為


在 .NET.NET Aspire 中允許不安全的傳輸

從預覽版 5 .NET.NET Aspire 開始,如果 applicationUrl 設定不安全的傳輸(非 TLS http)通訊協定,應用程式主機將會當機。 這是防止意外暴露敏感數據的安全性功能。 不過,在某些情況下,您可能需要允許不安全的傳輸。 本文說明如何在 .NET.NET Aspire 項目中允許不安全的傳輸。

癥狀

當您執行具有設定不安全傳輸通訊協定 applicationUrl 的 .NET.NET Aspire 專案時,您可能會看到下列錯誤訊息:

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.

如何允許不安全的傳輸

若要在 .NET.NET Aspire中允許不安全的傳輸,請將 ASPIRE_ALLOW_UNSECURED_TRANSPORT 環境變數設定為 true。 當 applicationUrl 設定不安全的傳輸通訊協定時,此環境變數可用來控制應用程式主機的行為:

export ASPIRE_ALLOW_UNSECURED_TRANSPORT=true

或者,您可以透過啟動設定檔來控制此功能,因為它提供了每個設定檔設置環境變數的能力。 若要這樣做,請考慮 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",
        "DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "https://localhost:16099",
        "DOTNET_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",
        "DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:16099",
        "DOTNET_RESOURCE_SERVICE_ENDPOINT_URL": "http://localhost:17038",
        "ASPIRE_ALLOW_UNSECURED_TRANSPORT": "true"
      }
    }
  }
}

上述範例顯示兩個設定檔,httpshttphttps 配置檔是使用安全的傳輸通訊協議來設定,而 http 配置檔則設定為不安全的傳輸通訊協定。 ASPIRE_ALLOW_UNSECURED_TRANSPORT 環境變數會設定為 http 設定檔中的 true,以允許不安全的傳輸。