【问题标题】:The process cannot access the file .exe because it is being used by another process该进程无法访问文件 .exe,因为它正被另一个进程使用
【发布时间】:2015-12-21 22:50:38
【问题描述】:

我正在运行一个服务器套接字project 尝试在端口 2201 中监听。当我第一次运行该项目时,它工作正常,我收到消息:

“正在等待连接...”

当我关闭项目并尝试重新运行时,我收到以下消息:

错误 CS2012:无法打开 'C:...\...\...sockets.exe' 进行写入 -- '进程无法访问文件 'C:...\...\.. .sockets.exe',因为它正被另一个进程使用。'

sockets 是项目的名称。这里发生了什么?

编辑:我可以创建一个与 startListening() 方法并行的 stopListening 方法吗?当服务器没有监听时,我收到了同样的消息。

【问题讨论】:

  • 禁用您的反恶意软件或进行排除,然后重试。如果是 Avast 或 AVG,则完全摆脱它。

标签: c# sockets


【解决方案1】:

您正在尝试重新编译它,因此该文件必须打开才能写入。可能程序没有终止,只有它的窗口被隐藏,因此它被操作系统锁定。你是如何“关闭项目”的?

【讨论】:

  • 是的,有道理。但是我怎样才能停止程序呢?如果我想停止从那个端口监听,我应该怎么做?
  • @JoseRamon 调用 Close() 方法,如果它是 WinForm。停止监听端口和关闭程序(exe)是不同的东西。
  • 它是控制台应用程序。我怎样才能停止listering端口?
  • 您可以在Main 方法中简单地执行return。或者从任何时候拨打Environment.Exit(0)(这不是一个好习惯)。
  • 在我的 main 我有一个 return 0;声明。
【解决方案2】:

您可能没有正确处理方法吗?与流一样,您可以将它们包装在 using 语句中,以便正确处理。

【讨论】:

    猜你喜欢
    • 2014-05-08
    • 2010-12-10
    相关资源
    最近更新 更多