В настоящее время у меня есть приложение, написанное на 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 является удаленной машиной, я получаю следующее исключение
Получение фабрики классов COM для удаленного компонента с CLSID {2B72138B-3F5E-4502-8052-803546CE3364} из «имени удаленной машины» не удалось из-за следующей ошибки: 80070005 «удаленная машина»
Исключение возникает при выполнении
var iisManager= ServerManager.OpenRemote("machineName");
Перед выполнением вышеуказанного кода я использую олицетворение, чтобы выдать себя за администратора. Я могу удаленно подключиться к машине и даже создать файл на машине, используя код C #.
Я предполагаю, что есть проблема с разрешениями на удаленном компьютере, или это может быть потому, что это виртуальная машина, я действительно не уверен.
Код 80070005 является довольно общим и представляет собой ограниченный доступ, но я не понимаю, почему, учитывая, что я выдаю себя за администратора.
Я выполняю код на машине с Windows 7 sp1 x64, а удаленная виртуальная машина работает под управлением Windows Server 2008 sp2 x64.
Если у кого-то есть идеи, как решить эту проблему или другой способ добавить веб-сайт в IIS на удаленном компьютере, я бы хотел их услышать.
Спасибо