Я пытаюсь создать простую веб-форму, которая даст мне кнопку перезапуска службы на экране.
После нажатия кнопки я создаю объект 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
?