0

我有两段相同的 C# 代码远程连接到另一台服务器:一段来自控制台,另一段来自 Web 应用程序:

var mgr = ServerManager.OpenRemote(myServer) 

控制台一工作正常。然而,另一个失败,但有以下例外:

System.UnAuthorizedAccessException 与此 com 消息:{“由于以下错误,从机器检索具有 CLSID {2B72133B-3F5B-4602-8952-803546CE3344} 的远程组件的 COM 类工厂失败:80070005。”}

我已禁用两台服务器上的防火墙并重新启动它们。

有没有一种方法或工具可以帮助我了解每个连接是如何进行的:两个服务器发送和接收的登录和访问权限?

我的尝试没有被困在 IIS 日志和事件查看器中。

我试图让提琴手听,但它也没有找到任何东西。

4

2 回答 2

5

您收到该异常的原因是应用程序池标识没有足够的权限。要使用Microsoft.Web.Administration托管 API,您需要成为管理员。

此外,当您使用 时ServerManager.OpenRemote(),您的网站运行所使用的帐户(无论是应用程序池身份还是其他帐户)都需要是具有足够权限的有效域帐户。

顺便说一下,CLSID“2B72133B-3F5B-4602-8952-803546CE3344”是支持托管 API的Microsoft.ApplicationHost.WritableAdminManagerCOM 组件的类 ID 。ServerManager

于 2013-07-17T09:06:52.103 回答
0

我建议您使用 SysInternals 的 Process Monitor 来观察 Web 进程在做什么。诀窍是过滤信息的消防水带!顺便说一句,我怀疑这是应用程序池标识或 DCOM 权限问题。

于 2013-07-16T16:02:30.770 回答