MVC3返回文件操作导致Excel程序间歇性错误

MVC3返回文件操作导致Excel程序间歇性错误,excel,file,asp.net-mvc-3,memorystream,npoi,Excel,File,Asp.net Mvc 3,Memorystream,Npoi,我遇到了一个与此问题密切相关的问题,即打开Excel时出现向程序发送命令时出错 但是,我使用MVC3生成一组数据,生成一个excel文件(使用),将其写入内存流,然后使用内置的返回文件(etc)ActionResult)将其插入浏览器,而不是现有文件并打开或短切到的文件,与此类似(但此处缩短以帮助可读性): 第一次单击触发此操作并返回此文件的链接时,会出现错误。如果您按ok并再次尝试,它将工作,并将继续工作。。。永远 现在我知道这可能与禁用DDE/插件或Excel中的某些内容有关,但由于我正在生

我遇到了一个与此问题密切相关的问题,即打开Excel时出现
向程序发送命令时出错

但是,我使用MVC3生成一组数据,生成一个excel文件(使用),将其写入内存流,然后使用内置的
返回文件(etc)
ActionResult)将其插入浏览器,而不是现有文件并打开或短切到的文件,与此类似(但此处缩短以帮助可读性):

第一次单击触发此操作并返回此文件的链接时,会出现错误。如果您按ok并再次尝试,它将工作,并将继续工作。。。永远

现在我知道这可能与禁用DDE/插件或Excel中的某些内容有关,但由于我正在生成Excel工作簿并将其转储到内存流中,而不是打开文件系统中永久存在的某个文件,我不确定有哪些选项可以消除此问题


有没有关于如何避开它的建议?可能我的mime类型错误?

内容类型应用程序/vnd.ms-excel正在向浏览器发送命令,以在浏览器中打开文件。这可能是问题的原因。尝试将内容类型设置为application/x-msexcel

在您的示例中,浏览器将尝试在浏览器中打开Excel电子表格(如果用户已安装Excel)

请做以下更改


我也有这个问题…有什么解决方案吗?信息:我已经切换到EPPlus来创建Excel文件…它工作得非常好,尽管看起来有点慢。但是,要尝试的一件事是将流位置重新设置为0。出于习惯,我正在将流位置重置为0-不确定在本例中它是否真的有很大的不同。我们发现,它仅适用于具有“新”(2007+)Excel版本的特定计算机。很可能只有97-2003格式才完全支持NPOI。我也有同样的问题。这似乎与Excel有关,因为我从其他网站(不一定是基于ASP.NET的网站)下载电子表格时也会发生这种情况。感谢您的选择-我将尝试一下。在没有任何其他响应的情况下,我已接受此答案作为最有可能的解决方法:)
return File(myMemoryStream, "application/vnd.ms-excel", "filename.xls");
return File(myMemoryStream, "application/vnd.ms-excel", "filename.xls")
return File(myMemoryStream, "application/x-ms-excel", "filename.xls")