为什么将 XML 文件从 Windows Server 2008 R2 64 位复制到 Windows XP 32 位会更改该文件?

为什么将 XML 文件从 Windows Server 2008 R2 64 位复制到 Windows XP 32 位会更改该文件?

我做什么:

  1. 在 Win Server 2008 机器上复制一个 xml 文件(ctrl+C)。
  2. 最小化 mstsc.exe(远程连接应用程序)。
  3. 将 xml 文件粘贴到我的 WinXP 机器上(ctrl+V)。

结果:

原始内容全部仍然存在,但在末尾附加了另一部分。

例如,文件的正确结尾看起来是这样的:

<ApplicationName>MyApp</ApplicationName>
</ReceivePort>
</ReceivePortCollection>
<PartyCollection xsi:nil="true" />
</BindingInfo>

但是,复制之后是这样的:

<ApplicationName>MyApp</ApplicationName>
    </ReceivePort>
    </ReceivePortCollection>
    <PartyCollection xsi:nil="true" />
    </BindingInfo>al, PublicKeyToken=3zzf3xxxadyyy35" Type="1" TrackingOption="ServiceStartEnd MessageSendReceive PipelineEvents" Description="" />
      <ReceivePipelineData xsi:nil="true" />
      <SendPipeline xsi:nil="true" />
      <SendPipelineData xsi:nil="true" />
      <Enable>true</Enable>
      <ReceiveHandler Name="WCF_OracleDB_Rx" HostTrusted="false">
        <TransportType Name="WCF OracleDB" Capabilities="779" Configuratio

它添加的额外位是来自 XML 文件中较早部分的内容。如果我多次复制,额外的位总是完全相同,但另一个 XML 文件会添加不同的行。

额外的信息:

如果我复制/粘贴文件(如上所述),但首先将其封装到 zip 文件中,则不会出现同样的问题。也就是说,文件可以正常复制,没有任何意外。

如果我从打开的 Windows 资源管理器窗口复制/粘贴到远程计算机上的文件夹,则不会出现相同的行为。即文件正确复制,没有任何额外的意外。

问题:

为什么会发生这种情况?

答案1

我无法在 MS KB 中找到确认这一点的页面,但我认为这是终端服务客户端中的一个错误 - 当以这种方式粘贴某些类型的文本文件时,文件中间某处的数据会添加到其末尾。

您可以通过使用客户端驱动器映射(例如 \tsclient\c)或在复制/粘贴之前压缩文件来解决此问题。

您是否已将远程桌面客户端 (mstsc.exe) 更新至版本 7?这样可能更适合与 Server 2008 剪贴板配合使用。

RDC 版本 7:http://support.microsoft.com/kb/969084/

相关内容