在 IIS 7 下创建远程 DCOM 对象失败并出现 System.UnauthorizedAccessException

发布于 2024-10-20 18:11:44 字数 964 浏览 4 评论 0原文

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

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

以下是如何创建 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>

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

谢谢

I have a problem with creating a remote DCOM object under IIS 7 (Win 2008 64-bit). On the server-side there is WCF service that uses an old DCOM component as Data Source. Everything works fine on the Web Development Server and from tests, but creation remote object fails under IIS 7 with "System.UnauthorizedAccessException: Retrieving the COM class factory for remote component with CLSID {DAF3140A-C132-11D2-85FB-004033D061E9} from machine IP failed due to the following error: 80070005 IP".

I know that there are many articles about 80070005 error, but I've tried everything - without success.

Here is the code snippet how DCOM object is created:

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

I've granted "Everyone" an access to my DCOM object using DCOM Config, I've tried configure IIS application pool to use Network Service account and also granted "Network Service" an access to DCOM - without luck. I've used Procmon tool to find out additional resources which are used but there is nothing interesting.

I have added the following lines in the web.config file, but also without success

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

Could you please help me with this problem? Any ideas?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

美胚控场 2024-10-27 18:11:44

我已经解决了这个问题;

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

之后,我完成了以下步骤:

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

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

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

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

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

I've resolved the issue;

The problem was in DCOM security configuration, I've created a Windows Service to host my application in it and got the same error: "UnauthorizedAccessException". It was a "food for thought".

After that I've done the following steps:

1) configured DCOM security settings to use a Domain Account on the server-side.

2) configured DCOM security settings to use a Domain Account from the step 1 on the client-side.

3) changed Log-On settings in the windows service to use domain account from the step 1

4) checked DCOM Authentication Level in the DCOM security settings both on the client and server sides. Authentication Level should be the same.

To get working application in IIS 7 I've created an application pool and configured it to use Domain Account from the step 1.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文