2010-09-29 4 views
5

У меня есть программа, которую я использовал в Windows Server 2003, которая настраивает сайт в IIS6, который я использовал без каких-либо проблем в прошлом.Как настроить сайт в IIS7 на Windows 2008 Server Web SP2 через консольное приложение?

Я пытаюсь сделать то же самое с Windows 2008 Server Web SP2, и я получаю сообщение об ошибке. Я предполагаю, что это связано с безопасностью учетной записи пользователя. Если это правильно, есть ли способ, которым я могу обойти это? Благодарю.

System.Runtime.InteropServices.COMException (0x80070005): 
Access is denied. at System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) 

Edit:

Я обнаружил, что Microsoft обеспечивает сборку, Microsoft.Web.Administration, чтобы сделать мою задачу с IIS7. Однако я получаю сообщение об ошибке при запуске приложения. Сообщается об ошибке:

«Указанная привязка HTTPS недействительна».

Я не указываю привязку https, хотя я не уверен, почему я получаю сообщение об ошибке. Вот код.

using Microsoft.Web.Administration; 
.... 
using (ServerManager iisManager = new ServerManager()) 
{ 
    iisManager.Sites.Add(site.Name.ToString(), "http", "*:80:" + domain, 
          server.InetPath + site.Name); 
    iisManager.CommitChanges(); 
    Site newSite = iisManager.Sites[site.Name]; 
    newSite.Applications[0].ApplicationPoolName = "TrialUsers"; 
    iisManager.CommitChanges(); 
} 

Кроме того, эта задача должна обновлять несколько серверов в веб-ферме. Кто-нибудь знает, как изменить код, чтобы это произошло?

+0

Кстати, исключение происходит на первых CommitChanges вызова. –

+0

Ничего, я понял, что я делаю неправильно. В моей переменной домена, которую я использовал ранее в коде, у меня был полный http: //, который не разрешен. Я удалил это, и он работал нормально. Я до сих пор не знаю, как сделать эту работу с несколькими серверами, хотя, если у кого-то есть идея. Благодарю. –

+0

Это не относится к ServerFault, это вопрос о программной настройке IIS с использованием API MWA. – Kev

ответ

0

Чтобы использовать API Microsoft.Web.Administration для создания и управления IIS на удаленном сервере, вы можете использовать метод ServerManager.OpenRemote(string serverName).

Однако у меня возникло ощущение, что вам, вероятно, нужно запустить его в контексте пользователя Active Directory с правильными правами на удаленном сервере, поскольку нет способа предоставления учетных данных для удаленного сервера.

+0

Спасибо, я попробую. –

+0

Я установил олицетворение для программы, и я прочитал, что мне нужно предоставить эти права пользователя директории windows \ system32 \ inetsrv \ config. Я подключаюсь в качестве локального администратора на этом компьютере, у которого есть доступ на чтение и запись к этим файлам, но я по-прежнему получаю ошибку неавторизованного доступа. Кто-нибудь знает, что мне еще нужно делать? Благодарю. –

5
iisManager.Sites.Add(site.Name.ToString(), "http:", "*:80:" + domain, 
        server.InetPath + site.Name); 

Удалить домен, если вы похожи на меня, вы не добавить второй «:» после того, как порт

+0

ясно, что это единственный правильный ответ –

Смежные вопросы