【问题标题】:Creation remote DCOM object fails under IIS 7 with System.UnauthorizedAccessException在 IIS 7 下创建远程 DCOM 对象失败并出现 System.UnauthorizedAccessException
【发布时间】:2011-07-11 17:23:13
【问题描述】:

我在 IIS 7(Win 2008 64 位)下创建远程 DCOM 对象时遇到问题。在服务器端有 WCF 服务,它使用旧的 DCOM 组件作为数据源。在 Web 开发服务器和测试中一切正常,但在 IIS 7 下创建远程对象失败,并出现“System.UnauthorizedAccessException:检索具有 CLSID 的远程组件的 COM 类工厂 {DAF3140A-C132-11D2-由于以下错误,来自机器 IP 的 85FB-004033D061E9} 失败:80070005 IP"。

我知道有很多关于 80070005 错误的文章,但我已经尝试了一切 - 没有成功。

下面是代码 sn-p 如何创建 DCOM 对象:

 Type objBlType = Type.GetTypeFromProgID("NetCatService.CatalogServer.1", netCatServerAddress, true);
 instance = Activator.CreateInstance(objBlType); 

我已使用 DCOM Config 授予“所有人”对我的 DCOM 对象的访问权限,我已尝试将 IIS 应用程序池配置为使用网络服务帐户,并且还授予“网络服务”对 DCOM 的访问权限 - 没有运气。我已经使用 Procmon 工具来找出使用的其他资源,但没有什么有趣的。

我在web.config文件中添加了以下几行,但也没有成功

<system.web>
    <trust level="Full" />
    <identity impersonate="true" password="pass" userName="userName" />
</system.web>

你能帮我解决这个问题吗?有什么想法吗?

谢谢

【问题讨论】:

    标签: iis configuration dcom


    【解决方案1】:

    我已经解决了问题;

    问题出在 DCOM 安全配置中,我创建了一个 Windows 服务来在其中托管我的应用程序并得到相同的错误:“UnauthorizedAccessException”。这是一种“深思熟虑”。

    之后我做了以下步骤:

    1) 将 DCOM 安全设置配置为在服务器端使用域帐户。

    2) 将 DCOM 安全设置配置为在客户端使用步骤 1 中的域帐户。

    3) 将 Windows 服务中的登录设置更改为使用步骤 1 中的域帐户

    4) 在客户端和服务器端的 DCOM 安全设置中检查 DCOM 身份验证级别。身份验证级别应该相同。

    为了在 IIS 7 中运行应用程序,我创建了一个应用程序池并将其配置为使用步骤 1 中的域帐户。

    【讨论】:

    • 我遇到了类似的问题,但我不完全理解您的解决方案。我有一个在 IIS 7.5 上运行的 ASP.NET 网站。我将所有 DCOM 访问权限和启动/激活权限设置为“允许”使用的应用程序池的身份,但问题仍然存在。我错过了什么?
    • 已经解决了。我为我试图调用的 DCOM 服务设置了一个额外的允许一切权限。感谢您的宝贵时间。
    猜你喜欢
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    • 2013-02-09
    • 2013-04-05
    相关资源
    最近更新 更多