我在IIS 7(Win 2008 64位)下创建远程DCOM对象时遇到问题。在服务器端,有一个WCF服务,它使用旧的DCOM组件作为数据源。在Web开发服务器上和测试中一切正常,但创建远程对象在IIS 7下失败“ System.UnauthorizedAccessException :使用CLSID检索远程组件的COM类工厂{DAF3140A-C132-11D2- 85FB-004033D061E9}由于以下错误导致机器IP失败: 80070005 IP“。
我知道有很多关于80070005错误的文章,但我已经尝试了一切 - 没有成功。
以下是创建DCOM对象的代码段:
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>
你能帮我解决这个问题吗?有什么想法吗?
由于
答案 0 :(得分:1)
我已经解决了这个问题;
问题出在DCOM安全配置中,我创建了一个Windows服务来托管我的应用程序并得到了同样的错误:“UnauthorizedAccessException”。这是一种“思考的食物”。
之后我完成了以下步骤:
1)配置DCOM安全设置以使用服务器端的域帐户。
2)配置DCOM安全设置以使用客户端步骤1中的域帐户。
3)更改了Windows服务中的登录设置,以使用步骤1中的域帐户
4)在客户端和服务器端的DCOM安全设置中检查DCOM身份验证级别。身份验证级别应该相同。
要在IIS 7中获取工作应用程序,我已经创建了一个应用程序池,并将其配置为使用步骤1中的域帐户。