当我尝试在本地计算机上从 IIS 7 运行有关 Microsoft.Office.Interop.Outlook 的 Web 应用程序时,出现如下错误...
由于以下错误,检索 CLSID 为 {0006F03A-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80070005 访问被拒绝。 (HRESULT 异常:0x80070005 (E_ACCESSDENIED))。
当我从 VS2010 和 Cassini 运行相同的 Web 应用程序时,我没有任何问题。
当我从 IIS 7 运行 Web 应用程序时,我将 VS2010 指向 IIS 虚拟目录。
事实上我什至让 VS2010 创建了虚拟目录。所以我可以从 VS2010 进行调试并收集我在此处发布的错误。
我已经转到 Microsoft.Office.Interop.Outlook.dll 文件并给每个人读取、写入、修改和删除的权限。只是为了排除安全问题。
引用 Microsoft.Office.Interop dll 时是否还有其他步骤?我应该对此进行不同的配置吗?再次切换回卡西尼号中运行,没有问题。
在我的服务器上,SharePoint 安装并在帐户“网络服务”下运行。这将是一个隐藏帐户,通常不允许运行 COM 对象。如果您进入 IIS 并查看它正在使用哪个应用程序池(在“高级设置”下)。然后检查该池的身份。一位朋友建议我们在指定帐户(例如 [domain]\svcSharepoint)下运行 SharePoint 应用程序池(和其他服务),以便您可以明确授予权限。否则,网络服务帐户将显示为 [域][计算机名称]$(请注意末尾的 $,表示“隐藏帐户”)。
另一个因素是,如果您将其安装在 Server 2008 R2 上,因为 UAC 功能要强大得多,并且肯定会拒绝这种交互。关闭 UAC 有点冒险,但可能是赢家。
最后一个因素是检查该 COM 对象的 DCOM 配置。 [开始菜单、管理员工具][组件服务][DCOM 配置]。按名称或 GUID、属性、安全性查找 Outlook。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)