我目前有一个用 C# 编写的应用程序,它在当前机器上向 IIS7 添加一个网站,它运行良好,代码如下
var iisManager = new ServerManager();
var sites = iisManager.Sites;
var site = sites.Add("WebsiteName", "C:\Website", 80);
var application = site.Applications[0];
application.ApplicationPoolName = appPool;
iisManager.CommitChanges();
我必须创建此代码的一个版本,将网站添加到位于同一网络上的远程计算机上的 IIS。该代码如下。
var iisManager= ServerManager.OpenRemote("machineName"); //I've also tried machines IP
var sites = iisManager.Sites["Default Web Site"];
var site = Sites.Applications.Add("WebsiteName", "C:\Website", 80);
site.ApplicationPoolName = appPool;
iisManager.CommitChanges();
当 machineName 是执行代码的机器时,它会将网站添加到 IIS。但是,当 machineName 是远程机器时,我得到以下异常
由于以下错误,从“远程机器名称”中检索具有 CLSID {2B72138B-3F5E-4502-8052-803546CE3364} 的远程组件的 COM 类工厂失败:80070005“远程机器”
执行时出现异常
var iisManager= ServerManager.OpenRemote("machineName");
在执行上述代码之前,我使用模拟来模拟管理员。我可以远程进入机器,甚至可以使用 C# 代码在机器上创建文件。
我认为远程计算机上的权限存在问题,或者可能是因为它是 VM,我真的不确定。
代码 80070005 相当笼统,表示访问受限,但我不明白为什么考虑到我在冒充管理员。
我在 Windows 7 sp1 x64 机器上执行代码,远程 VM 正在运行 Windows Server 2008 sp2 x64。
如果有人对如何解决此问题或以其他方式将网站添加到远程计算机上的 IIS 有任何想法,我很想听听他们的意见。
谢谢