【发布时间】:2011-06-07 04:46:53
【问题描述】:
每当我尝试将 4 个文件复制到我的 bin 文件夹中时,在停止主服务后,我都会收到一个文件 (TexteDll) 的错误。错误是:
Cannot copy TexteDll: The requested operation cannot be performed on a file
with a user-mapped section open
这可能是由于某些系统锁定。或者也许另一个进程正在使用这个 DLL。 google了一下,发现重启系统可以解决这个问题。
任何人都可以为此提出原因或解决方案吗?我检查了 TexteDll 的属性(一般、版本、安全性等)。一切看起来都很正常。
【问题讨论】:
-
这个问题实际上有更多的“重复”(例如:stackoverflow.com/questions/1818076/…) - 问题是每次根本原因都不同。
-
下次尝试使用微软网站的“进程浏览器”。它有一个称为“查找句柄”的功能。在那里搜索你的文件,它会告诉你哪个进程对该文件有句柄。然后您可以开始调查为什么该程序具有该访问权限。顺便说一句,停止服务并不一定意味着托管服务的可执行文件将结束。一个可执行文件可以承载多个服务。在最坏的情况下,许多使用大量内存的 .net 服务往往会在释放内存后终止,这有时会在服务停止事件后几分钟发生。
-
呵呵呵呵 Visual Studio 锁定了我的 DLL。关闭 Visual Studio 并尝试重新构建解决方案,它成功了。
-
这显然是内存冲突。对象的特定“实例”映射了一些分配的位内存,然后发现分配给它的内存(静态?)已经映射到其他地方,可能具有不同级别的系统访问。