gpt4 book ai didi

c# - 进程无法访问文件 "MyFile.log",因为它正被另一个进程使用

转载 作者:可可西里 更新时间:2023-11-01 08:50:37 26 4
gpt4 key购买 nike

我得到了

The process cannot access the file "MyFile.log" because it is being used by another process.

当我这样做的时候

File.SetAttributes(filename,FileAttributes.Normal)

using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite))
{
// Do stuff with log4net log
}

我已经阅读了其他帖子,但它们都暗示了我已经在做的事情。还有其他建议吗?

谢谢。

最佳答案

尝试使用最小锁配置 log4net:

<appender name="FileAppender" type="log4net.Appender.FileAppender">
...
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
...
</appender>

have a look here for better explanation.

或者,尝试使用以下方式打开日志文件:

     using (var stream = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Delete | FileShare.ReadWrite))
{...
}

或查看此项目:Tailf在任何情况下,删除无法工作的 SetAttributes() 部分。尾部项目说明Tailf 是 unix/linux 系统上可用的 tail -f 命令的 C# 实现。与其他端口不同,它不会以任何方式锁定文件,因此即使其他人重命名该文件,它也能正常工作:这是专门为与 log4net 滚动文件附加程序一起工作而设计的。

关于c# - 进程无法访问文件 "MyFile.log",因为它正被另一个进程使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8710110/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com