1

这是我运行 esky auto_update 时遇到的错误:

Traceback (most recent call last):
File "__main__.py", line 838, in <module>
File "__main__.py", line 331, in bootstrap
File "__main__.py", line 358, in chainload
File "__main__.py", line 834, in _chainload
File "my_code.py", line 49, in <module>
File "esky\__init__.pyc", line 471, in cleanup
File "esky\__init__.pyc", line 516, in _cleanup_actions
File "esky\__init__.pyc", line 465, in cleanup
File "esky\__init__.pyc", line 882, in install_version
File "esky\__init__.pyc", line 914, in _unpack_bootstrap_env
File "esky\fstransact\win32txf.pyc", line 109, in move
File "esky\fstransact\win32txf.pyc", line 118, in _move
File "esky\fstransact\win32txf.pyc", line 24, in wrapper
WindowsError: [Error 6805] The remote server or share does not support transacted file operations.

在服务器上,我看到两次请求更新。

weapon101s.ds.com - - [23/May/2013 10:47:25] "GET / HTTP/1.1" 200 -
weapon101s.ds.com - - [23/May/2013 10:47:26] "GET / HTTP/1.1" 200 -
weapon101s.ds.com - - [23/May/2013 10:47:26] "GET /hifg-1.1.1.win32.zip HTTP/1.1" 200 -
weapon101s.ds.susq.com - - [23/May/2013 10:48:08] "GET /hifg-1.1.1.win32.zip HTTP/1.1" 200 -
weapon101s.ds.susq.com - - [23/May/2013 10:49:06] "GET / HTTP/1.1" 200 -
weapon101s.ds.susq.com - - [23/May/2013 10:49:06] "GET / HTTP/1.1" 200 -

这可能是网络问题,因为该问题不会发生在本地网络上,而只会在从远程站点更新时发生。关于什么是错的以及如何解决这个问题的任何想法?

4

1 回答 1

1

Esky 在移动文件时使用事务性 NTFS 来维护数据完整性,特别是MoveFileTransacted函数。但是,事务性 NTFS 仅适用于本地文件。

引用 Microsoft 文档,何时使用事务性 NTFS

TxF 不支持以下交易场景:

  • 网络卷上的事务,例如文件共享上的事务。CIFS/SMB 协议不支持 TxF。
  • NTFS 以外的任何文件系统上的事务。
  • 针对客户端缓存缓存的文件的事务操作。
  • 使用对象 ID 访问文件。
  • 任何共享编写器场景。
  • 长时间(几天或几周)打开文件的任何情况。

除了不远程更新之外,我不确定有什么方法可以解决这个问题。

于 2013-05-29T01:46:20.020 回答