更新到Windows 11后从Microsoft Interop.Office ASP.NET WebForms获取编译器错误

nmpmafwu  于 2023-03-04  发布在  .NET
关注(0)|答案(1)|浏览(173)

更新到Windows11后从编译器得到愚蠢的错误(编译器不希望编译行包含Microsoft.Interop.Word)。但在更新之前一切都很好(我的意思是在Windows10上)。有人得到同样的错误。谢谢你提前
代码:

Object oMissing = Missing.Value;
    string exp = "";
    MemoryStream stream = new MemoryStream();
    var app =new Microsoft.Office.Interop.Word.Application();
    app.Visible = true;
    var doc = app
            .Documents
            .Open(docLocation);

有关错误的更多详细信息:

carvr3hs

carvr3hs1#

在服务器端使用Office自动化(Asp.net)并不是一个好主意。如果您只处理Open XML文档,则可以考虑改用Open XML SDK,有关详细信息,请参阅Welcome to the Open XML SDK 2.5 for Office。否则,请考虑使用为服务器端执行而设计的任何第三方组件,这些组件不需要在服务器上安装Office应用程序。
以下是微软对类似您这样的场景的声明:
Microsoft当前不建议也不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP、ASP.NET、DCOM和NT服务)自动执行Microsoft Office应用程序,因为在此环境中运行Office时,Office可能会表现出不稳定的行为和/或死锁。
如果要生成在服务器端上下文中运行的解决方案,则应尝试使用对于无人参与的执行来说是安全的组件。或者,应尝试找到至少允许部分代码在客户端运行的替代方案。如果从服务器端解决方案使用Office应用程序,则该应用程序将缺少成功运行所需的许多功能。此外,您将冒整个解决方案稳定性的风险。
Considerations for server-side Automation of Office文章中阅读更多相关信息。

相关问题