在 ASP.net MVC6 网站上使用 Office 互操作

Posted

技术标签:

【中文标题】在 ASP.net MVC6 网站上使用 Office 互操作【英文标题】:Use Office Interop on ASP.net MVC6 website 【发布时间】:2015-08-20 04:52:15 【问题描述】:

我想从我的 ASP.net MVC 6 网站生成 word 文档。我已经实现了几种在 POC 中生成文档的方法:DocX、NetOffice、OpenXml、COM Interop 对象。我被它诱惑了。

我制作了一个控制台应用程序进行测试,它可以工作。

但是,对于 ASP.net MVC6,我们不能引用控制台应用程序或 COM 程序集。 我们需要创建“控制台应用程序(包)”。

如何将 COM 程序集添加到我的 ASP.net MVC 6 网站?

【问题讨论】:

【参考方案1】:

Microsoft 目前不推荐也不支持从任何无人值守的非交互式客户端应用程序或组件(包括 ASP、ASP.NET、DCOM 和 NT 服务)自动化 Microsoft Office 应用程序,因为 Office在此环境中运行 Office 时可能会出现不稳定的行为和/或死锁。

如果您要构建在服务器端上下文中运行的解决方案,您应该尝试使用已确保无人值守执行安全的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方案。如果您使用服务器端解决方案中的 Office 应用程序,该应用程序将缺少许多成功运行所需的功能。此外,您将在整体解决方案的稳定性方面承担风险。

您可以在Considerations for server-side Automation of Office 文章中了解更多相关信息。

考虑使用为服务器端执行而设计的第三方组件,或者如果您处理开放 XML 文档,您可以使用 Open XML SDK,请参阅Welcome to the Open XML SDK 2.5 for Office 了解更多信息。

【讨论】:

这不是散布恐惧!它确实不起作用。此外,请注意,即使您决定忽略这条非常明智的建议, 也有责任保证访问您网站的每个人都拥有您所使用的确切版本的 Office 的有效许可证正在使用。在 Intranet 中可以说是可能的,在 Internet 上则完全不可能。 @EuroMicelli 我知道办公许可证。我们有。

以上是关于在 ASP.net MVC6 网站上使用 Office 互操作的主要内容,如果未能解决你的问题,请参考以下文章

微软ASP.NET 电商网站开发实战 MVC6 +HTML5 +WCF+WebAPI+NoSQL+mongoDB+Redis+Core视频 代码 面试题

ASP.NET 5 |使用 80 端口托管 MVC 6 项目

解读ASP.NET 5 & MVC6系列

解读ASP.NET 5 & MVC6系列:ASP.NET 5简介

解读ASP.NET 5 & MVC6系列:依赖注入

在 Mono 上运行 ASP.NET 5 的 Ubuntu 上使用 MVC 6 调整图像大小