我開發了Windows服務,必須在Windows啓動過程中自動啓動。此服務連接到Oracle數據庫,因此我通過sc命令行實用程序使我的服務依賴於Oracle服務: sc config MyService depends = OracleServiceXE/OracleXETNSListener在Windows啓動時自動啓動Windows服務,這取決於Oracle
到目前爲止,依賴性已成功設置。但是,當Windows啓動時,我的服務無法啓動,我收到以下(Oracle)錯誤消息:「ORA-12528:TNS:偵聽器:所有適當的實例阻塞新連接」。
正如我所想,Oracle服務是在我的服務啓動時啓動的,但它們沒有「完全初始化」。幾秒鐘後,我可以從服務控制檯開始我的服務,沒有任何問題。
那麼,如何在Windows啓動時自動啓動依賴於Oracle數據庫連接的服務?
我的服務是在VS 2010環境中使用.Net 4平臺上的C#開發的。
請注意。幫助我,這對我來說是一項非常重要的任務!
Thx你的答案。這對我來說聽起來很糟糕:(我的服務必須連接到配置文件(mysql,ms access,sqlite ...)中設置的任何類型的數據庫,因此它可以使用不同的db-s來運行。只有在Oracle的情況下才會出現這種問題,所以對於我來說,重新設計我的應用程序聽起來非常糟糕,僅僅是因爲Oracle,我認爲還有一個更直接的解決方案:(Thx again! – Tom 2011-05-28 12:50:26
@Keller,you can不要確定*任何*數據庫服務器都不會出現這種行爲,因此將這種「彈性」放入服務中並不會造成什麼傷害。令人討厭但不是世界末日!您從分離中獲得的另一個優勢從服務核心本身開始,您的「業務邏輯」就是可測試性;爲沒有綁定到Windows服務的「OnStart」方法的代碼編寫測試更容易=) – Rob 2011-05-28 13:43:01