2010-11-18 61 views
0

首先,我脑海中的小声尖叫着说这是一个坏主意,不应该这样做,但我的务实一面是问“它会有多糟糕?”在ASP.NET IIS服务器上安装Office:优点/缺点?

严峻的事实是我公司每天的“业务”大部分发生在一个MS Office工具或另一个MS Office工具中。数据从我们的自定义工具中导出为* .tab,* .csv,在Excel中操作并以不同程度的成功导入。

大部分这些自定义工具都是ASP.NET MVC Web应用程序,通过与Office的更多互操作性可以增强其可用性。

我已经打了很多年的好斗,说Office在Web服务器上是一个可怕的想法。最近我一直认为增强的可用性胜过潜在的风险。

我会疯了吗?

+0

有什么风险? – jfar 2010-11-18 17:15:51

+0

看起来像微软文章Jazza cites很好地阐述了这些问题。达林季米特洛夫的回答也提到了一些风险。我现在正在挖掘服务器上的Office替代品。看起来我脑子里的小声音是对的。 – ZaChickster 2010-11-18 20:36:52

回答

3

你不会说你在工作场所使用的是什么版本的MS Office,或者你在使用什么类型的互操作性。

如果您想直接从Web应用程序生成Office文档,则如果您使用的是Office 2007或2010,则默认文档格式(.docx,.xlsx)基于Open XML SDK。这意味着可以动态生成文档,而无需在Web服务器上安装MS Office。

如果您使用的是Office 2003或更早版本,则在服务器上安装MS Office通常被认为是不好的做法 - 它是不受支持的配置。

Microsoft article概述了许多可能遇到的问题,如果你决定走这条路。

+0

我们使用的是office 2007.我们要做的就是接受并轻松解析传入的Excel文档并将数据导出为有效的Excel文档,而不必为用户显示一堆“This Content is un-trusted”弹出窗口。 感谢您提供有关Open XML SDK的信息。我会深入探讨一些。 – ZaChickster 2010-11-18 18:21:27

+0

只需注意 - 引用的文章还包括Office 2007,因此“不良实践”仍然适用。 – Ahmad 2010-11-19 04:35:29

0

无需在Web服务器上安装Office,即可创建出色的办公文档。选项包括SpreadsheetML,来自aspose.net的组件,甚至只是将HTML响应的文件扩展名和内容类型更改为傻瓜办公室本身。

3

微软Office未在设计中可能是一个高度分散的,多线程环境中的服务器工作。它是一种客户端应用程序,顺便说一下主要是非托管代码。因此,安装它并从Web服务器使用它可能会隐藏潜在的问题:泄漏句柄,GDI对象,托管/非托管内存,STA COM对象之间的封送处理等。我建议您仅使用已被设计用于服务器环境。

0

我已经看到这项工作在负载很低的环境中......但是一旦负载增加,问题就开始蔓延。 Jazza明确指出,这甚至可以被微软记录下来。请注意,这篇文章相当新(2010年7月)。

我见过的问题有内存泄漏,Word/Excel未插入内存的实例,奇怪的注册表问题等等。

要考虑的另一件事是,如果您在服务器环境中调用与Office相关的问题,Microsoft将不会支持您。

再说一遍,如果你只有一些用户,这对你最初可能不是问题,但要为规模问题做好准备。