я в настоящее время есть приложение, написанное на языке 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 на удаленной машине, я бы хотел их услышать.
Благодаря
Я считаю, вы wiuld должны настроить IIS 7 Manager для удаленных подключений , См. Http://www.iis.net/learn/manage/remote-administration/remote-administration-for-iis-manager после того, как он настроил вас, чтобы открыть диспетчер iis 7 на вашем локальном компьютере, а затем подключиться к удаленной машине как только tbis работает, я предполагаю, что код будет. Также проверьте локальный брандмауэр и удаленный брандмауэр, чтобы убедиться, что ничто не отклонено I.e. красный. Поэтому проверьте журнал событий на обеих машинах. Он может пролить немного света – Kyle
Кайл, спасибо за ваш ответ. Оказывается, мой код работал, однако учетная запись, которую я использовал, не имела правильных разрешений, потому что она была в другом домене. Когда я тестировал его в среде, где обе машины использовали одни и те же учетные данные и находились в одном домене, он работал отлично. – Dan
Оказывается, мой вопрос был с олицетворением. Я выдавал себя за «правильные» учетные данные администратора, но поскольку моя машина и другая машина находятся в двух разных доменах, она ожидала DomainA.Admin, и вместо этого я пытался войти в домен с DomainB.Admin – Dan