当我尝试使用以下代码从远程服务器获取 IIS 应用程序池的列表时
List<ApplicationPool> appPools;
using (ServerManager serverManager = ServerManager.OpenRemote("XXX")) {
appPools = serverManager.ApplicationPools.ToList();
}
我得到一个例外:
System.Runtime.InteropServices.COMException (0x800706BA): Retrieving the COM
class factory for remote component with CLSID
{2B72133B-3F5B-4602-8952-803546CE3344} from machine XXX failed due to the
following error: 800706ba.
知道是什么原因造成的吗?
事实证明,可以通过在防火墙中添加适当的规则来解决问题:
- 规则类型:入站
- 规则类型:自定义
- program: %systemroot%\system32\dllhost.exe 协议
- :TCP协议
- 本地端口:RPC 动态端口
- 远程端口:所有端口
- 操作:允许连接
- 配置文件:域
上述解决方案的灵感来自以下线程:Windows 防火墙阻止 OAB 连接。