Создать 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, ваш выбор
- Выдавать себя за локального администратора с помощью WindowsIdentity.
- Или запустите пул приложений под учетной записью локального администратора.
У них обоих есть то, на что нужно обратить внимание в плане безопасности,
У меня та же проблема при попытке добавить привязку динамически. Я только что запустил приложение в качестве администратора
Это сработало для меня.