2009-12-15 122 views
1

我有一個應用程序有3個服務依賴於SQL服務器。Windows服務器依賴項

我的應用程序使用的數據庫存在於另一臺機器(不同於我有3個服務的機器)。

這3個服務是SQLserver的相關服務。

我在遠程機器上建立了一個與我的數據庫的ODBC連接,而且我的服務運行良好。

現在我終止或停止正在運行我的服務的計算機中的SQLserver。由於我的服務是依賴服務窗口也將停止我的服務。

問題1:是否有可能從sqlserver的屬性中爲我的服務從services.msc中刪除依賴項。

問題2:假設我刪除了我的服務依賴,我殺了SQLSERVER exe將我的服務繼續其在遠程機器的DB工作。

感謝

回答

4

正確答案爲:您可以添加/使用sc command

ANSWER2刪除依賴關係:是的。如果您刪除依賴關係並終止本地sql server,只要連接字符串設置正確,服務就可以在遠程sql server上正常運行

+0

你可以用sc來改變依賴嗎?如果是這樣,怎麼樣? – 2009-12-15 10:15:59

+1

http://www.kiwisyslog.com/help/cattools/index.html?appserv_howtoaddservdepends.htm – bdhar 2009-12-15 10:21:13

+2

sc config「service name」depend =「」 – bdhar 2009-12-15 10:28:31

1

此答案解決了您對服務具有多個依賴關係並只想刪除其中之一。例如,您將數據庫移動到另一臺服務器,並希望移除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,而不是您在Windows服務管理單元中看到的更友好的DisplayName

必須停止該服務才能對其進行修改。因此,要移除使它們與vpxd服務的SQLExpress依賴的命令是:

# 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 shell工作,請注意,scSet-Content cmdlet的常見別名。結果,所有這些例子都在好的舊Cmd shell中執行。