Добавление веб-сайта в 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 на удаленном компьютере, я бы хотел их услышать.

Спасибо


person Dan    schedule 02.08.2013    source источник
comment
Я считаю, что вам нужно будет настроить диспетчер iis 7 для разрешения удаленных подключений. См. iis.net/learn/manage/remote -administration / после его настройки вы сможете открыть диспетчер iis 7 на локальном компьютере, а затем подключиться к удаленному компьютеру, как только tbis заработает, я предполагаю, что ваш код будет. Также проверьте локальный брандмауэр и удаленный брандмауэр, чтобы убедиться, что ничто не запрещено, т.е. красный. Так что проверьте журнал событий на обеих машинах. Это может пролить свет   -  person Kyle    schedule 03.08.2013
comment
Кайл, спасибо за ответ. Оказывается, мой код работал, однако учетная запись, которую я использовал, не имела правильных разрешений, потому что она находилась в другом домене. Когда я тестировал его в среде, где обе машины использовали одни и те же учетные данные и находились в одном домене, он работал отлично.   -  person Dan    schedule 07.08.2013
comment
Оказывается, моя проблема заключалась в выдаче себя за другое лицо. Я выдавал себя с правильными учетными данными администратора, но поскольку мой компьютер и другой компьютер находятся в двух разных доменах, он ожидал DomainA.Admin, а вместо этого я пытался войти в систему с помощью DomainB.Admin   -  person Dan    schedule 22.08.2013


Ответы (1)


Прежде всего, вы запускаете визуальную студию как администратор и отключите брандмауэр Windows на сервере, а затем увидите, что он будет работать для удаленного сервера.

person user2610138    schedule 24.09.2013