-1

我正在使用作为 API 的 .Net Core 3.1 应用程序。由于下面的代码,我能够生成 example.txt 日志文件,但无法删除它。“该进程无法访问文件'',因为它正被另一个进程 w3p 使用”。

Log.Logger = (new LoggerConfiguration())
                .MinimumLevel.Information()
                .MinimumLevel.Override("SerilogDemo", LogEventLevel.Information)
                .WriteTo.File("C:\\Logs\\Example.txt", 
                    restrictedToMinimumLevel:LogEventLevel.Information, 
                    fileSizeLimitBytes: 2000,
                    retainedFileCountLimit:5, 
                    rollOnFileSizeLimit:true ),
                .CreateLogger();
4

1 回答 1

0

我不确定您的具体代码,但核心原则似乎很清楚:您已经创建并打开了一个用于写入的文件,通过这样做,您实质上在文件上创建了一个“保留”,以便它可以' t 被删除。

名为 w3p 的进程是您的服务运行的进程;如果您停止服务器或服务,您应该能够手动删除文件,如果您愿意的话 - 但我猜您想以编程方式执行它?

在任何情况下,您可能需要做的是处理记录器(Log.Logger),因为它指的是文件。只要记录器存在,它就可能会保持与文件的连接打开。

于 2022-01-20T21:03:46.183 回答