簡體   English   中英

如何在啟動時同步Windows服務對SQL Server數據庫的訪問?

[英]How to Synchronize Windows Service Access to SQL Server Database on Startup?

我有一個作為Windows服務運行的WCF服務。 一旦WCF服務啟動,它將嘗試連接到DB並進行一些初始化處理。

重新啟動計算機時出現問題(將wcf服務設置為自動啟動),由於sql太忙,該服務將出現異常。 因此,似乎sql正在嘗試啟動,同時我的服務正在嘗試與之通信。

現在,我做了類似try / catch的操作,並且在catch中睡了10秒鍾,然后再次重試,直到初始化成功為止。

效果很好。 但我正在尋找更優雅的解決方案。

我不想在Windows服務上設置對sql的依賴關系,因為該服務可以安裝在與數據庫不同的機器上。

您可以在部署服務時嘗試配置服務的“ 恢復 ”選項,以使其在加載失敗時重新啟動。 您可以通過SC.EXE命令行工具,WMI或通過服務屬性(services.msc MMC)手動執行此操作。

如果考慮仍然進行監視和警報,則嘗試[n]次,並在重試之間間隔一段時間,直到最終仍然無法連接失敗,這並不是一個不好的解決方案。

實際無法啟動的服務會將警告/錯誤事件寫入Windows事件日志,如果僅等待依賴項可用,則可能觸發您可能不希望的監視和警報行為,並且最終將恢復。

HTH,

ž

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM