Я пытаюсь создать веб-приложение .NET, которое перезапускает пул приложений на удаленном веб-сервере с IIS 6.0 на Windows Server 2003. У меня работает код, но у меня проблема с разрешениями.
string appPoolPath = ConfigurationSettings.AppSettings["ApplicationPool"];
string systemId = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
try
{
DirectoryEntry svc = new DirectoryEntry(appPoolPath);
svc.Invoke("Recycle");
LabelResult.Text = "Application Pool Recycled Succesfully!";
LabelResult.Visible = true;
}
catch(Exception exc)
{
LabelResult.Text = "Error (" + systemId + "): " + exc.Message + " : " + exc.InnerException;
LabelResult.Visible = true;
}
Когда я запускаю код, я получаю следующую ошибку:
Ошибка (NT AUTHORITY \ NETWORK SERVICE): Исключение было выдано целью вызова. : System.UnauthorizedAccessException: доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))
Итак, мой вопрос: как я могу предоставить учетной записи NETWORK SERVICE разрешение на запуск корзины без предоставления учетной записи полных прав администратора? Возможно ли это?
Я знаю, что другой способ решить эту проблему - выдать себя за одного из существующих администраторов на сервере, но мне не разрешено это делать. Я не могу создать пользователей на машине и не могу получить учетные данные для существующих учетных записей пользователей.