1

我遇到了一个非常奇怪的问题。将 zip 文件从 Windows 8 客户端(用 C# 编写)上传到在 Server 2008 R2 上运行的 IIS 网页(也用 C# 编写)时,文件有时会损坏。我们无法在任何其他客户端操作系统(Windows 7、Vista、XP)上重现该问题。它并不一致,但经常发生足以成为一个问题。

当我使用二进制 diff 工具检查 zip 文件时,我发现替换具有明确的模式。

二进制差异比较

这是替换的示例。该模式在文件的不同实例之间是一致的。上面是原始文件,下面是服务器端保存的上传文件。

所有变化的模式都是一样的。首先是模式的八字节块:

0 0 C 0 免费

其中C是某个字符,后跟一个八字节的未修改部分。

然后有一个 16 字节的修改部分,分为两个相同的 8 字节块。

模式太一致而不能随机,但我不知道是什么导致了问题。我什至不知道从哪里开始。

该代码已在 Windows 7 和 XP 上运行多年,没有出现明显问题。

4

2 回答 2

0

唯一的猜测是传输级别发生了一些事情。诊断问题的方法:使用不同的客户端/代码/组件上传相同的文件,看看问题是否消失。文件中的实际更改很可能无关紧要。我认为分块编码或压缩(或两者)都用于传输,并且由于客户端或服务器中的错误而破坏了数据。如果您可以确保不使用分块编码和压缩,另一个组件将解决此问题。

于 2013-04-24T17:30:54.237 回答
0

问题最终是 vmware 中的网卡驱动程序问题。一旦我们更新了我们的 vmware 版本,一切都恢复了快乐。

于 2014-02-28T15:52:52.130 回答