Я пытаюсь создать простую веб-форму, которая даст мне кнопку перезапуска службы на экране.Доступ запрещен 0x80070005 в ASP.net с использованием SQL Server SMO
После нажатия кнопки, я создаю объект SMO, чтобы поговорить с базой данных SQL Server и попытаться остановить и запустить службу MSSQLSERVER
. Все идет хорошо до тех пор, пока не будет вызван метод Stop()
, в котором указывается исключение:
Доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))
код под кнопкой выглядит следующим образом:
// connect the to server
ManagedComputer computer =
new ManagedComputer("172.16.150.52",@"Administrator","secret");
// return if there is a problem
if (computer.Services["MSSQLSERVER"] == null)
{
PageErrorMessage = "Bad or missing service \"MSSQLSERVER\"";
return;
}
// get the SQL Server Service
Service sqlServer = computer.Services["MSSQLSERVER"];
// is the server running?
if (sqlServer.ServiceState == ServiceState.Running)
sqlServer.Stop();
// wait for it to stop completely
int timeout = 0;
while (sqlServer.ServiceState != ServiceState.Stopped || timeout <= 60)
{
Thread.Sleep(1000);
sqlServer.Refresh();
timeout++;
}
if (timeout > 60)
{
PageErrorMessage = "Stop operation has timed out after 60secs";
return;
}
// start it again!
sqlServer.Start();
IP-адрес, имя пользователя & пароль являются 100% правильно. Кто-нибудь знает, почему это приведет к исключению AccessDenied
?
Это ошибка операционной системы, а не ошибка WMI или Smo, чтобы вы вероятно, получит лучший ответ на ServerFault. См. Здесь: http://technet.microsoft.com/en-us/library/ee692772.aspx#EEAA – Pondlife
Я не уверен, что это ОС как таковой. Я предполагаю, что OP не реализовал код для обработки UAC. –