两个文件是二进制相同的,但performance出不同的行为

我发布标签asp.net和excel,因为这是我的问题的起源,但我不知道这是正确的地方 – 最终,我的问题是,我有两个文件(由ASP.Net应用程序)是基于二进制文件比较使用相同

fc /B A.xls B.xls 

但是,它们performance出不同的行为:第一个在Excel中正常打开; 第二个不是。 然后,我得出结论,除了FC实用程序检查的文件外,还有一些不同之处。

我试着把这两个文件发给一个朋友来请求他的帮助,但是发现当我这样做的时候,问题文件被“固定”了。 事实上,如果我对这个文件做任何事情,它都会被“固定”。 通过修正,我的意思是,它在Excel中打开罚款。 例如,如果我压缩它,然后从压缩包中提取它,这是没有问题的。 如果我用Notepad ++和“另存为”打开,那就好了。 与写字板一样。 使用普通的旧记事本不能解决它。

所以,显然,这两个文件有一些差异,我失踪了。

我不确定是否有任何问题要求人们访问一个随机的网站,但如果你想看到一个行为的例子,我已经创build了一个最小的页面来复制问题在http://rodj.me/ ExcelTest

点击“MinimalHtml.aspx”的链接,该应用程序将在页面载入中使用以下内容提供基于HTML的xls文件:

 protected void Page_Load(object sender, EventArgs e) { Response.ContentType = "application/vnd.ms-excel"; Response.AddHeader("Content-Disposition", "filename=MinimalHtml.xls"); } 

根据您的浏览器和浏览器设置(我的testing已经在Chrome中),您可能会打开一个空白页面的Excel。 无论如何,你应该得到文件MinimalHtml.xls下载。 这是一个纯文本文件。 你会发现这个文件不会在Excel中打开。 但是,如果您压缩文件,然后从zip中提取,它将打开。

我很好奇在做FC比较时我错过了什么其他的文件差异,但最终,我需要纠正ASP.Net应用程序正确地为HTML文件提供服务。 有趣的是,如果我创build电子表格的XML版本,它会下载/打开罚款。 这就是“MinimalXml.aspx”链接的作用。

任何人都可以帮助1)如何弄清楚两个文件的不同之处; 或2)ASP.Net应用程序必须改变它以正确地提供文件?

我认为你的问题可能是微软的安全补丁。 看到这篇文章: Infoworld文章

当您直接打开该文件时,该修补程序会导致出现空白页的问题,因为文件内容是HTML而不是Excel。 当您在Zip文件中下载文件并将其解压缩时,将视为安全并正确打开。