当您通过网络保存文件时出现文件锁定或拒绝访问错误消息

文章翻译 文章翻译
文章编号: 812937 - 查看本文应用于的产品
重要说明:本文包含有关修改注册表的信息。修改注册表之前,一定要先进行备份,并且一定要知道在发生问题时如何还原注册表。有关如何备份、还原和编辑注册表的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
256986 Microsoft Windows 注册表说明
展开全部 | 关闭全部

本文内容

症状

当您尝试保存使用通用命名约定 (UNC) 路径打开的文件(如 Microsoft Excel 工作簿)时,您可能会收到与以下某一条消息类似的错误消息:
Cannot read file. File is locked
拒绝访问
Lock Error
事件查看器中可能包含下面的事件:

类型: 信息
来源: 弹出应用程序
类别: 无
事件 ID: 26
用户: N/A
描述: 弹出应用程序: Windows - 延迟写入失败: Windows 无法保存文件 name_of_the_file_you_want_to_save 的所有数据。数据可能已丢失。这个错误可能是由计算机硬件或网络连接故障引起的。请将这个文件存到别的地方。有关更多信息,请参见位于 http://support.microsoft.com 的帮助和支持中心。

原因

当重定向程序刷新文件内容并向具有只读访问权限的文件句柄(而非具有写入访问权限的文件句柄)写入数据时,就会出现此问题。当重定向程序收到的一个机会锁定中断的值为“无”时,它便清除文件的缓存,但不会撤销对文件缓存的初始化。当出现设置文件结尾时,重定向程序还需要清除和撤销初始化,因为机会锁定中断是异步的。因为它没有撤销文件缓存的初始化,所以它会向不正确的文件句柄写入数据。

解决方案

Service Pack 信息

要解决此问题,请获取最新的 Microsoft Windows XP Service Pack。有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
322389 如何获取最新的 Windows XP Service Pack

修补程序信息

Microsoft 目前提供了一个受支持的修补程序。但是,此修补程序仅用于修复本文所述的问题。请仅将此修补程序应用于出现这一特定问题的系统。此修补程序可能还会接受进一步的测试。因此,如果这个问题没有给您造成严重的影响,我们建议您等待包含此修补程序的下一个 Service Pack。

要解决此问题,请向 Microsoft 在线客户服务提交请求以获取该修补程序。要提交联机请求以获取该修补程序,请访问下面的 Microsoft 网站:
http://go.microsoft.com/?linkid=6294451
注意:如果发生其他问题或需要进行任何疑难解答,则您可能需要创建单独的服务请求。对于此特定修补程序无法解决的其他支持问题和事项,将照常收取支持费用。要创建单独的服务请求,请访问下面的 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support
此修补程序的英文版具有下表中列出的文件属性(或更新的属性)。这些文件的日期和时间按协调世界时 (UTC) 列出。当您查看文件信息时,相应的时间将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用“控制面板”中“日期和时间”工具中的“时区”选项卡。

Windows XP SP1 (Windows XP Tablet PC Edition)

日期        时间  版本          大小      文件名 
-------------------------------------------------------------- 
30-Jan-2003 21:41 5.1.2600.1164 400,896   Mrxsmb.sys 
30-Jan-2003 21:41 5.1.2600.1164 154,880   Rdbss.sys

Windows XP 64-Bit Edition

日期         时间  版本          大小      文件名 
------------------------------------------------------------- 
30-Jan-2003  21:41 5.1.2600.1164 1,259,392 Mrxsmb.sys 
30-Jan-2003  21:41 5.1.2600.1164 489,216   Rdbss.sys

替代方法

警告:注册表编辑器使用不当可导致严重问题,可能需要重新安装操作系统。Microsoft 不能保证您可以解决因注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。 要解决此问题,请禁用文件服务器上的机会锁定:
  1. 单击“开始”,然后单击“运行”。
  2. 在“打开”框中,键入 regedit,然后按 Enter。
  3. 在“注册表编辑器”中,找到注册表中的以下子项:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet \Services\LanmanServer\Parameters
  4. 在右窗格中,单击“EnableOplocks”,然后按 Enter。
  5. 在“数值数据”框中,键入 0,然后按 Enter。
  6. 退出注册表编辑器。

状态

Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中存在的问题。 此问题最早在 Microsoft Windows XP Service Pack 2 中得到了解决。

更多信息

有关机会锁定的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
296264 在 Windows 2000 中配置机会锁定
此问题的跟踪记录表明,文件至少打开了两次,并且系统不恰当地向只读的文件句柄写入了数据。描述此问题的跟踪记录类似于:
96  CLIENT SMB: C NT create & X, File = \newshare.xls
SMB: Desired Access = 0x00020089 
	  (Read Data,Read EA,Read Attributes)
97 SERVER SMB: R NT create & X, FID = 0x5
	  SMB: Oplock Level = Batch

<content removed that displays the client program reading and locking the
		  file, but the file is not closed>

450 CLIENT SMB: C NT create &amp; X, File = \newshare.xls
	   SMB: Desired Access = 0x0002019F 
	   (Read/Write Data, Read/Write EA, Read/Write Attributes)

451 SERVER SMB: R NT create &amp; X, FID = 0xc007
	   SMB: Oplock Level = NONE

<content removed that displays the client program reading, locking,  writing
		  and flushing data on this file handle>

585 CLIENT SMB: C write &amp; X, FID = 0x5, Write 0xc00 at 0x00005000
		PID = 0xFEFF TID = 0x1002 MID = 0x4400 UID = 0x0801
586 SERVER SMB: R write &amp; X - NT error, System, Error, Code = (34)
		  STATUS_ACCESS_DENIED
注意:位于帧 585 的 0xFEFF 的进程标识符 (PID) 表示当前使用该只读文件句柄的客户端系统进程。它不显示将数据写入磁盘的客户端程序。

属性

文章编号: 812937 - 最后修改: 2007年12月1日 - 修订: 5.2
这篇文章中的信息适用于:
  • Microsoft Windows XP Professional x64 Edition
  • Microsoft Windows XP Home Edition
  • Microsoft Windows XP Professional Edition
  • Microsoft Windows XP Tablet PC Edition
关键字:?
kberrmsg kbbug kbfix kbqfe kbenv kbwinxpsp2fix kbwinxppresp2fix kbhotfixserver KB812937
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com