我在c#中有一个控制台应用程序,需要打开一个Outlook会话。 当我把它放在服务器上时它就会失败,并且在完成以下代码时它甚至都不会抛出:
Outlook.Application app=new Microsoft.Office.Interop.Outlook.Application();
只有在服务器上打开outlook时代码才有效,因为应用程序设置为:
app = Marshal.GetActiveObject("Outlook.Application") as Outlook.Application;
有什么可以做的吗? 因为我需要前景接近
答案 0 :(得分:0)
达尼亚,
您是否在服务器上安装了Outlook?
无论如何, Microsoft目前不建议并且不支持从任何无人参与的非交互式客户端应用程序或组件(包括ASP,ASP.NET,DCOM和NT服务)自动化Microsoft Office应用程序,因为Office在此环境中运行时可能会出现不稳定的行为和/或死锁。
如果要构建在服务器端上下文中运行的解决方案,则应尝试使用已为安全无人值守执行的组件。或者,您应该尝试找到允许至少部分代码在客户端运行的替代方法。如果从服务器端解决方案使用Office应用程序,则应用程序将缺少许多成功运行的必要功能。此外,您将承担整体解决方案稳定性的风险。
在Considerations for server-side Automation of Office文章中详细了解相关内容。