首先,如果这个问题看起来很业余或者过去已经回答过,请原谅我——我对一般的编程还很陌生,并试图寻找答案。
我正在尝试编写一个可执行文件来访问 Outlook 邮箱、提取未读电子邮件并将其详细信息插入数据库以供我们记录。
我已经编写了一个可以正常运行的概念验证应用程序,但是当我尝试通过 Sql server 中的存储过程调用它时,我遇到了错误消息:
未处理的异常:System.UnauthorizedAccessException:检索 CLSID 为 {0006F03A-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败,原因是以下错误:80070005 访问被拒绝。 (HRESULT 异常:0x80070005 (E_
我想我一路上遇到了安全问题,但也许由于我的经验不足,这根本不可能通过 Microsoft 安全设置实现?
到目前为止我已经尝试过:
-使用regsvr32注册.dll -更改.dll 的权限 -设置一个与我用来访问托管服务器的VM的登录名相同的Sql服务器代理帐户 -尝试使用晚期和早期绑定(bind)方法运行它
任何建议将不胜感激,因为我很困惑!
提前谢谢你们。
最佳答案
仅仅因为某些事情可以完成,并不意味着它应该:) 通过 xp_cmdshell 从 SQL Server 转到 Outlook 有很多失败的可能性,我什至不会考虑它。你可能让它在一台机器上运行,然后发现你无法让它在另一台机器上运行。
执行此操作的简单方法是创建一个小型 .Net 应用程序;查询 Outlook + 写入数据库。如果您希望它持续工作,请使用调度程序或创建 Windows 服务以每 n 分钟执行一次任务。
关于c# - 从 SQL Server 中使用 xp_cmdshell 调用 Outlook COM 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28341165/