从base64字符串创建的文件导致服务器上的内存泄漏

时间:2015-04-09 03:55:30

标签: sql-server memory-leaks base64 ms-office document

我工作的公司遇到了一个非常重要的问题,我们的一个版本让我们的项目戛然而止。

我们管理的第三方应用程序从存储在SQL Server中的base64编码字符串生成word文档。我们遇到的问题是,在某些情况下,当其中一个文档通过SMTP发送并且文件由用户打开时,该文件无法打开。

当文件失败时,服务器会锁定。然后,内存和CPU在服务器上呈指数级增长,以至于唯一的选择是从服务器端终止进程,以防止网络上其他用户的失败和停机时间。

我们正在使用Windows 7与Microsoft Office 2013和最新版本的SQL Server。

显而易见的是,从base64字符串创建的word文档已损坏。显而易见的是,这似乎如何使整个服务器系统一下子崩溃。

之前有没有人遇到过这个问题,如果有的话,你提出的解决方案是什么?我们无权访问生成文件的第三方应用程序的二进制文件。我们无法手动重现该问题,以便提出一个工作测试用例呈现给第三方,所以我们很难过。有任何想法吗?

1 个答案:

答案 0 :(得分:0)

我需要更多细节来了解您的情况。你说这是事件的顺序: 1.通过SMTP发送Word文件(可能是发送到Outlook客户端的电子邮件) 2.用户收到电子邮件;打开附件 3.服务器上的内存和CPU达到100%。这会为其他用户创建停机时间。 4.需要杀死这个过程来恢复。

由于Outlook是客户端应用程序,因此它必须是导致此问题的Word文档附件。您是否可以在公共场所发布样本文档,例如免费的OneDrive帐户?据推测,这个文件会产生问题。也许它有一些VBA代码?尝试使用空白文档。