问题 将 Blazor webassembly 应用程序部署为应用程序服务容器后,我们在浏览器中收到以下错误:
AuthenticationService.js:1 Mixed Content: The page at 'https://YYY.azurewebsites.net/authentication/login?returnUrl=https%3A%2F%2FYYY.azurewebsites.net%2Ffetchdata' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://YYY.azurewebsites.net/.well-known/openid-configuration'. This request has been blocked; the content must be served over HTTPS.
想知道目前 Blazor 是否支持 docker 部署,如果支持,我们该如何解决?
重新制作的步骤: 1. 在 VS 2019 专业预览版 16.7.0 预览版 2.0 中:使用托管选项创建 Blazor 应用程序(标准“Blazor WebAssembly 应用程序”模板)并使用 Identity Server 进行应用内身份验证 2. 部署 linux docker 容器到容器服务的 Azure Web App (B1) 3. 应用服务的 HTTPS Only 设置为 ON
为此,我们使用了以下简单的 docker 文件:
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1 AS runtime
WORKDIR /app
EXPOSE 80
COPY . .
ENTRYPOINT ["dotnet", "AppNameHere.Server.dll"]
不知何故,Blazor 使用的 OIDC JS 库没有发现我们在 HTTPS 上运行的事实(尽管在容器实例和应用服务负载均衡器之间使用了 HTTP)。