首页 > 解决方案 > ASP.NET Core Web App appsettings.json 值被 docker 容器中的随机字符串替换

问题描述

我有一个 ASP.NET Core Web 应用程序,其中一些值存储在 appsettings.json 中,这些值正在通过 IConfiguration 服务访问。当应用程序在 Windows 机器上的 IIS 中发布和托管时,这可以正常工作。但是,当在 linux docker 容器中运行时,appsettings 中的值会被替换为随机字符串,例如7d5136967af41. appsettings 文件设置为始终复制到输出目录

<ItemGroup>
<Content Update="appsettings.json">
  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>

我不确定这个问题是从哪里来的,所以我也会添加 docker 文件

FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app

FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["ProjectName/ProjectName.csproj", "ProjectName/"]
RUN dotnet restore "ProjectName/ProjectName.csproj"
COPY . .
WORKDIR "/src/ProjectName"
RUN dotnet build "ProjectName.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "ProjectName.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENV ASPNETCORE_URLS http://*:5000
ENTRYPOINT ["dotnet", "ProjectName.dll"]

运行时docker build -t imagename -f ProjectName/Dockerfile .没有错误,docker容器日志中也没有错误

如果需要任何其他文件,请告诉我,我也会添加它们,非常感谢任何帮助

谢谢

标签: c#asp.net-mvcdockerasp.net-coreappsettings

解决方案


对于也遇到此问题的任何人,似乎使用“主机名”的应用程序设置是问题,将名称更改为其他任何名称都解决了我的问题

希望这可以帮助


推荐阅读