进程无法访问文件“MyFile.log”,因为它正由另一个进程使用

我正进入(状态

该进程无法访问文件“MyFile.log”,因为它正由另一个进程使用。

而我这样做

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

我已阅读其他post,但他们都建议我已经在做什么。 还有其他建议吗?

谢谢。

尝试使用最小锁定配置log4net:

  ...  ...  

看看这里有更好的解释。

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

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

或检查此项目: Tailf在任何情况下,删除无法工作的SetAttributes()部分。 Tailf项目描述Tailf是unix / linux系统上可用的tail -f命令的C#实现。 不同地形成其他端口它不会以任何方式锁定文件,因此即使其他文件重命名它也可以工作: 这是特别适用于log4net滚动文件appender。