首先,我脑子里的小声音尖叫着这是一个坏主意,不应该这样做,但我务实的一面是问“这有多糟糕?”
严峻的事实是,我公司的大部分日常“业务”都发生在一个MS Office工具或其他工具中。数据以我们的自定义工具的形式导出为* .tab,* .csv,在Excel中操作并导入,并取得了不同程度的成功。
这些自定义工具大多数是ASP.NET MVC Web应用程序,其可用性可以通过与Office的更多互操作性来增强。
多年来我一直在努力争取在Web服务器上使用Office是一个糟糕的主意。最近我一直认为增强的可用性超过了潜在的风险。
我疯了吗?
答案 0 :(得分:3)
Microsoft Office不适用于可能是高度分布式多线程环境的服务器。它是一个客户端应用程序,顺便说一下主要是非托管代码。因此,安装它并从Web服务器使用它可以隐藏潜在的问题:泄漏句柄,GDI对象,托管/非托管内存,STA COM对象之间的编组等。我建议您仅使用设计用于服务器环境。
答案 1 :(得分:3)
您没有说明您在工作场所使用的MS Office版本或您所使用的互操作性类型。
如果要直接从Web应用程序“动态”生成Office文档,那么如果您使用的是Office 2007或2010,则默认文档格式(.docx,.xlsx)基于{{3} }。这意味着可以动态生成文档,而无需在Web服务器上安装MS Office。
如果您使用的是Office 2003或更早版本,通常认为在服务器上安装MS Office是不好的做法 - 这是一种不受支持的配置。
此Open XML SDK概述了如果您决定沿着这条路走下去可能遇到的许多问题。
答案 2 :(得分:0)
您无需在Web服务器上安装办公室即可创建良好的办公文档。选项包括SpreadsheetML,来自aspose.net的组件,甚至只是更改傻瓜办公室本身的html响应的文件扩展名和内容类型。
答案 3 :(得分:0)
如果您不想安装完整的Office套件,那么您可以只安装Microsoft Office主互操作程序集吗?
http://msdn.microsoft.com/en-us/library/aa159923(office.11).aspx
答案 4 :(得分:0)
我已经在负载非常低的环境中看到了这项工作......但是一旦负载增加,问题就会开始蔓延。正如Jazza所指出的文章清楚地表明,微软甚至会记录这一点。请注意,这篇文章是最近的(2010年7月)。
我看到的问题是内存泄漏,Word / Excel实例没有卡在内存中,奇怪的注册表问题等等。
另一件需要考虑的事情是,如果您在服务器环境中调用与Office相关的问题,Microsoft将不会为您提供支持。
同样,如果您只有少数用户,这对您来说可能不是一个问题,但要为规模问题做好准备。