当我查看我的发布文件时,在服务器上的文件appsettings.json就在那里,并且它们在发布中进行配置。
当我在启动时执行env.ContentRootPath的Console.WriteLine时,contentRootPath为/.
它应该是安装应用程序的文件夹的路径吗?
public Startup(IHostingEnvironment env)
{
Console.WriteLine(" ContentRootPath: " + env.ContentRootPath);
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: false, reloadOnChange: true);
答案 0 :(得分:0)
我发现问题与我的docker文件以及我复制程序的位置有关。
我正在容器中以root身份复制程序目录,我怀疑运行kestrel的用户无法访问该根文件夹而无法查看文件。
FROM microsoft / dotnet:latest COPY / app / root / EXPOSE 5001 / tcp ENTRYPOINT dotnet /root/App.dll
我使用的是另一个脚本文件脚本,它只是复制文件夹和我的AppSettings文件,找到并正确加载。
FROM microsoft / dotnet:latest WORKDIR / app ENV ASPNETCORE_URLS http:// *:5001 EXPOSE 5001 ENTRYPOINT [“dotnet”,“App.dll”] COPY。 /应用