我目前有一个用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“remote machine”
执行
时发生异常var iisManager= ServerManager.OpenRemote("machineName");
在执行上述代码之前,我使用模拟来模拟管理员。 我可以远程访问机器,甚至可以使用C#代码在机器上创建文件。
我认为远程计算机上的权限存在问题,或者可能是因为它是虚拟机,我真的不确定。
代码80070005,相当通用,代表限制访问,但我不明白为什么考虑我冒充管理员。
我正在Windows 7 sp1 x64计算机上执行代码,而远程VM正在运行Windows Server 2008 sp2 x64。
如果有人有任何想法如何解决此问题或以其他方式将网站添加到远程计算机上的IIS,我很乐意听到它们。
由于
答案 0 :(得分:0)
首先,您以管理员身份运行视觉工作室,然后关闭服务器的Windows防火墙,然后看它将适用于远程服务器