我在将数据写入包含所有应用程序dll的bin
文件夹中的子文件夹时遇到了糟糕的经历,但这是针对ASP.NET MVC
中托管的IIS
的。这种写法以某种方式触发了 reloading (或者可能是重新编译)了dll,并导致了隐藏的性能下降(例如,为每个请求编写日志数据时)。我不得不花费数小时来找出原因,并通过将logs文件夹上一层(与bin
文件夹相同的级别)来解决该问题。
现在,当使用ASP.NET Core
(尤其是托管在docker容器中)时,我不确定是否仍然如此。实际上,将所有应用程序数据或日志文件放在子文件夹中对我来说是非常易于管理和方便的。配置路径(使用相对路径)也更容易,默认基本路径始终是包含所有应用dll的路径。这样我们就可以得到一个不错的目录图,如下所示:
- dll file 1
- dll file 2
…
+ Logs
- log1
- log2
+ AppData
- …
尤其是当托管在docker容器中时,似乎我们不应该上升一级来保存数据,因为所有文件都放在一个名为app
的文件夹中,该文件夹已经位于Linux文件系统的根目录下。应用程序的所有文件都应放在该文件夹中(作为常规提示)。我了解我担心的原始问题仅由IIS
(无论是ASP.NET还是ASP.NET Core)引起,这意味着将应用程序托管在Docker容器中会很好吗?请让我一切都清楚,谢谢。