【问题标题】:ASP.NET Core Web App appsettings.json values replaced by random strings in docker containerASP.NET Core Web App appsettings.json 值被 docker 容器中的随机字符串替换
【发布时间】:2020-09-04 16:23:38
【问题描述】:

我有一个 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容器日志中也没有错误

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

谢谢

【问题讨论】:

  • 您是否使用“--self-contained”选项创建发布?
  • 在 IIS 中测试的发布我没有,但为 docker 发布我有

标签: c# asp.net-mvc docker asp.net-core appsettings


【解决方案1】:

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

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-21
    • 2015-01-20
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多