使用System.UnauthorizedAccessException在IIS 7下创建远程DCOM对象失败

时间:2011-03-09 08:48:09

标签: iis configuration dcom

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

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

以下是创建DCO​​M对象的代码段:

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

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

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

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

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

由于

1 个答案:

答案 0 :(得分:1)

我已经解决了这个问题;

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

之后我完成了以下步骤:

1)配置DCOM安全设置以使用服务器端的域帐户。

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

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

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

要在IIS 7中获取工作应用程序,我已经创建了一个应用程序池,并将其配置为使用步骤1中的域帐户。