在远程机器 C# 上向 IIS7 添加网站

Dan*_*Dan 5 c# iis-7 remote-server windows-server-2008-r2 servermanager

我目前有一个用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();
Run Code Online (Sandbox Code Playgroud)

我必须创建此代码的一个版本,以便将网站添加到位于同一网络上的远程计算机上的 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();
Run Code Online (Sandbox Code Playgroud)

当 machineName 是执行代码的机器时,它会将网站添加到 IIS。但是,当 machineName 是远程机器时,我收到以下异常

由于以下错误,从“远程机器名称”检索具有 CLSID {2B72138B-3F5E-4502-8052-803546CE3364} 的远程组件的 COM 类工厂失败:80070005“远程机器”

执行时出现异常

var iisManager= ServerManager.OpenRemote("machineName");
Run Code Online (Sandbox Code Playgroud)

在执行上述代码之前,我使用模拟来模拟管理员。我可以远程访问机器,甚至可以使用 C# 代码在机器上创建文件。

我认为远程机器上的权限存在问题,或者可能是因为它是虚拟机,我真的不确定。

代码 80070005 相当通用,表示访问受限,但我不明白为什么要冒充管理员。

我在 Windows 7 sp1 x64 机器上执行代码,远程 VM 运行 Windows Server 2008 sp2 x64。

如果有人知道如何解决此问题或以其他方式将网站添加到远程计算机上的 IIS,我很乐意听取他们的意见。

谢谢

小智 0

首先,您以管理员身份运行 Visual Studio,并关闭服务器的 Windows 防火墙,然后看到它适用于远程服务器