Создать IIS с помощью servermanager, ошибка commitchanges

Возникают проблемы, когда я хочу создать новый сервер с помощью servermanager.

Вот мой код



    ServerManager sm = new ServerManager();
    Site s = sm.Sites.Add("NEWSERVER", path, 80);

    BindingCollection bindingCollection = s.Bindings;
    bindingCollection.Clear();

    Binding binding = s.Bindings.CreateElement("binding");
    binding["protocol"] = "https";
    binding["certificateHash"] = "‎thumprint value";
    binding["certificateStoreName"] = "MY";
    binding["bindingInformation"] = string.Format("{0}:{1}:{2}", "*", "443", "subdomain.url.com");
    bindingCollection.Add(binding);

    Binding binding2 = s.Bindings.CreateElement("binding");
    binding2["protocol"] = "http";
    binding2["bindingInformation"] = string.Format("{0}:{1}:{2}", "*", "80", "subdomain.url.com");
    bindingCollection.Add(binding2);

    s.ServerAutoStart = true;

    ApplicationPool a = sm.ApplicationPools.Add("NEWSERVER");
    a.ManagedRuntimeVersion = "v4.0";
    s.ApplicationDefaults.ApplicationPoolName = "NEWSERVER";
    sm.CommitChanges();

Когда я запускаю его, он создает привязки сервер +, но выдает следующую ошибку:

"Доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))"

что происходит при запуске sm.CommitChnages().

Я не могу понять, к чему у меня нет доступа. Есть идеи?

2 ответа

Решение

Вы должны запустить этот фрагмент кода с учетной записью локального администратора.

Для приложений ASP.NET, ваш выбор

  1. Выдавать себя за локального администратора с помощью WindowsIdentity.
  2. Или запустите пул приложений под учетной записью локального администратора.

У них обоих есть то, на что нужно обратить внимание в плане безопасности,

http://msdn.microsoft.com/en-us/library/ff647404.aspx

У меня та же проблема при попытке добавить привязку динамически. Я только что запустил приложение в качестве администратора

Это сработало для меня.

Другие вопросы по тегам