Зависимости сервера Windows - PullRequest
       5

Зависимости сервера Windows

1 голос
/ 15 декабря 2009

У меня есть приложение, которое имеет 3 службы, которые зависят от сервера SQL.

База данных, используемая моим приложением, присутствует на другом компьютере (отличается от компьютера, на котором у меня есть 3 службы).

Эти 3 службы являются зависимыми службами для SQLserver.

Я установил ODBC-соединение с моей БД на удаленной машине, и мои службы работают нормально.

Теперь я прекращаю или останавливаю SQL-сервер на машине, на которой работают мои службы. Так как мои сервисы являются зависимыми сервисами, окна также остановят мои сервисы.

Вопрос 1. Могу ли я удалить зависимость от services.msc для моих служб из свойств sqlserver.

Вопрос2: Предположим, я удалил зависимость для своих служб и что я убил sqlserver exe, продолжат ли мои службы работать с БД, находящейся на удаленной машине.

Спасибо

Ответы [ 2 ]

4 голосов
/ 15 декабря 2009

Ответ1: Вы можете добавлять / удалять зависимости, используя команду sc

Ответ2: Да. Если вы удалите зависимость и уничтожите локальный сервер SQL, службы будут работать нормально с удаленным сервером SQL, если строка подключения установлена ​​правильно

1 голос
/ 04 апреля 2015

Этот ответ относится к случаю, когда у вас есть несколько зависимостей от службы и вы хотите удалить только одну из них. Например, вы перемещаете базу данных на другой сервер и хотите удалить зависимость SQL Server (как в первоначальном вопросе), но также сохранили другие зависимости для этой службы.

Как отмечалось в другом ответе, sc config - это путь, но синтаксис не очевиден из этой ссылки, если вы никогда не делали этого раньше.

Параметр depend= принимает список имен служб, разделенных прямой косой чертой, т.е. /. Чтобы удалить одну зависимость, вы просто передаете ей список текущих зависимостей минус тот, который вы хотите удалить.

Чтобы точно определить текущие зависимости, используйте sc qc , чтобы запросить информацию о конфигурации для службы. Например, для службы с именем vpxd:

C:\Users\me>sc qc vpxd
[SC] QueryServiceConfig SUCCESS

SERVICE_NAME: vpxd
        [...]
        DEPENDENCIES       : ProtectedStorage
                           : lanmanworkstation
                           : MSSQL$SQLEXPRESS

Нас интересует только атрибут DEPENDENCIES, в котором перечислены три зависимых сервиса. Обратите внимание, что эти значения являются службой Name, а не более дружественной DisplayName, которую вы видите в оснастке Windows Services.

Служба должна быть остановлена, чтобы изменить ее. Таким образом, команды для удаления зависимости SQLExpress из службы vpxd будут:

# stop the service
C:\Users\me>sc stop vpxd

# configure its dependencies; the space after depend= is important.
C:\Users\me>sc config vpxd depend= ProtectedStorage/lanmanworkstation
[SC] ChangeServiceConfig SUCCESS

# start the service back up
C:\Users\me>sc start vpxd

Другим способом устранения зависимости является удаление ее службы, но в этом примере это имело бы смысл только в том случае, если мы хотим полностью избавиться от SQLExpress.

Кроме того: если, как и я, вы склонны работать с оболочкой PowerShell, обратите внимание, что sc является общим псевдонимом для командлета Set-Content. Как следствие, все эти примеры были выполнены в старой доброй оболочке Cmd.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...