我是Docker的新手,并且在Main方法的以下行中遇到错误,它是Docker的.net core 3.1 API,
当它尝试初始化Nlog(代码找不到nlog.config)时,该文件被配置为始终复制。
var logger = NLog.Web.NLogBuilder.ConfigureNLog("nlog.config").GetCurrentClassLogger();
这是我得到的错误,System.IO.FileNotFoundException: 'Failed to load NLog LoggingConfiguration.
Searched the following locations:
- /app/bin/Debug/netcoreapp3.1/nlog.config
与IIS一起运行时,它工作正常。提前致谢
阿阿比德
最佳答案
根据您提供的信息很难分辨。您是否还有其他信息-您可以提供/显示相关内容的Dockerfile?在docker examples上有一些准则可用于对Asp.Net Core应用程序进行docker化。
如果您的应用程序可以在IIS中工作,但不能在docker上工作,那么我建议您的nlog.config文件不属于您的容器。也许检查在构建过程中nlog.config文件是否已复制到输出目录? (在VS2019中,右键单击文件,然后单击属性,然后将“复制到输出目录”设置为“如果更新则复制”)
您可以构建容器,然后使用以下docker命令进入bash session 以浏览目录/ etc:
使用以下方法构建容器:docker build -t nlog-example .
使用以下命令输入bash终端 session :docker run --rm -it --entrypoint /bin/bash nlog-example
(请注意,在我的示例中,nlog-example是docker标记,但您的可能有所不同)
关于docker - 找不到nlog.config-文件.Net core 3.1和Docker,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/64252462/