2011-03-09 64 views
0

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

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

这里是代码片段如何DCOM对象被创建:

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

我授予“每个人”使用DCOM配置DCOM我对象的访问,我已经试过配置IIS应用程序池使用网络服务帐户也授予“网络服务”访问DCOM - 没有运气。我用Procmon工具来找出其他资源,但没有什么有趣的。

我已经添加在web.config文件中的以下行,也没有成功

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

能否请你帮我解决这个问题?有任何想法吗?

感谢

回答

1

我已经解决了这个问题;

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

之后,我已经做了以下步骤:

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

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

3)在Windows服务更改登录以下设置,使用域帐户从步骤1

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

要获得在IIS 7中运行的应用程序我创建了一个应用程序池,并配置它从步骤1

+0

我有一个类似的问题,使用域帐户,但我不完全理解你的解决方案。我有一个在IIS 7.5上运行的ASP.NET网站。我将所有DCOM访问权限和启动/激活权限设置为“允许”所使用的应用程序池的标识,但问题依然存在。我错过了什么? – jkokorian 2012-02-08 09:45:25

+0

已经解决了。我设置了一个额外的允许我试图调用的DCOM服务的所有权限。谢谢你的时间。 – jkokorian 2012-02-08 09:51:34