2

я в настоящее время есть приложение, написанное на языке C#, который добавляет сайт в IIS7 на текущей машине, и она отлично работает, код выглядит следующим образомДобавление сайта в IIS7 на удаленной машине C#

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

Я считаю, вы wiuld должны настроить IIS 7 Manager для удаленных подключений , См. Http://www.iis.net/learn/manage/remote-administration/remote-administration-for-iis-manager после того, как он настроил вас, чтобы открыть диспетчер iis 7 на вашем локальном компьютере, а затем подключиться к удаленной машине как только tbis работает, я предполагаю, что код будет. Также проверьте локальный брандмауэр и удаленный брандмауэр, чтобы убедиться, что ничто не отклонено I.e. красный. Поэтому проверьте журнал событий на обеих машинах. Он может пролить немного света – Kyle

+0

Кайл, спасибо за ваш ответ. Оказывается, мой код работал, однако учетная запись, которую я использовал, не имела правильных разрешений, потому что она была в другом домене. Когда я тестировал его в среде, где обе машины использовали одни и те же учетные данные и находились в одном домене, он работал отлично. – Dan

+0

Оказывается, мой вопрос был с олицетворением. Я выдавал себя за «правильные» учетные данные администратора, но поскольку моя машина и другая машина находятся в двух разных доменах, она ожидала DomainA.Admin, и вместо этого я пытался войти в домен с DomainB.Admin – Dan

ответ

0

Прежде всего вы запустите Visual Studio как администратор и ОТКЛ окна брандмауэра сервера, то увидите, что будет работать для удаленного сервера