Добавление веб-сайта в IIS7 на удаленной машине C#
В настоящее время у меня есть приложение, написанное на 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 на удаленной машине, я бы хотел их услышать.
Спасибо
1 ответ
Прежде всего, вы запускаете вашу Visual Studio от имени администратора и отключаете брандмауэр Windows, а затем смотрите, как он будет работать на удаленном сервере.