【问题标题】:The process cannot acces the file as it is being used by another process C#该进程无法访问该文件,因为它正在被另一个进程 C# 使用
【发布时间】:2017-01-17 21:14:15
【问题描述】:

我有一个 .Net 控制台应用程序。我想捕捉执行期间发生的任何异常并将其写入文本文件。如果之前文件上有任何条目,我会得到 ​​p>

该进程无法访问该文件,因为它正被另一个进程使用。

我也尝试关闭下面的连接,但仍然显示相同的错误。

catch (Exception ex)
{
using (System.IO.StreamWriter writeerror = new System.IO.StreamWriter(_txtError))
            {
                writeerror.WriteLine(ex.Message);
                writeerror.Flush();
                writeerror.Close();
             }
}

注意:在程序执行开始时,我将删除文件并在出现任何错误时重新生成。

【问题讨论】:

  • 你对这个文件的所有写入都在这样的 using 语句中?
  • 展示整个sn-p会更有意义
  • try 语句中发生了什么?
  • 错误信息看起来很简单。您是否在记事本或类似文件中打开了此错误日志的副本?顺便说一句,记录 ex.ToString() 可能会更有帮助。
  • @Steve 是的。如果这不正确,请让我知道我应该在我的代码中更改什么

标签: c# .net c#-4.0


【解决方案1】:

最后我发现问题出在哪里。在所有功能结束时,我有一个发送电子邮件功能,它将日志文件作为附件发送到一个组。问题出在我的工作站上,我无法发送电子邮件。一旦在服务器中部署代码,电子邮件任务将按预期运行。对于发送电子邮件任务,我有一个类似的 catch stmt,当它失败时,它会尝试写入我在电子邮件任务中附加的相同错误文件。一旦我删除了捕获逻辑,问题就解决了。呼!!我知道..这是一个愚蠢的错误! :(从这个错误中学到了一些东西

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-17
    • 2010-12-10
    相关资源
    最近更新 更多