2012-04-25 134 views
0

我只是很想知道,是否有任何技術/理論上的原因讓Windows NT服務更穩定,而使用C++而不是.Net應用程序創建,反之亦然。是一個c + + windows服務比.net windows服務更穩定 - ?

其實我有兩個Nt服務,一個是用cpp和其他的.Net應用程序製作的。我觀察到兩者都顯示在啓動模式下,但我需要重新啓動由.Net創建的服務(平均每兩天平均一次)以進行響應。當我試圖瞭解.Net服務的這種奇怪行爲時,我的一些朋友提出了與OS內部相關的答案,並且有人說.Net就是這樣構建的。我完全不知道.Net平臺,所以找到這個論壇是我的嘗試之一。

感謝

阿尼爾

+0

以何種方式更穩定? – 2012-04-25 14:27:03

+8

與程序員創建它們一樣穩定 – Roger 2012-04-25 14:28:16

+1

您可能會用C++(如果它是本地的)獲得一些性能,而不是.NET,但這隻會在啓動期間獲得。一旦他們開始運行,應該沒有太大的區別。 – 2012-04-25 14:31:20

回答

2

你可能會獲得一些性能與C++(如果它是原生)比.NET,但這只是在啓動。一旦他們開始運行,應該沒有太大的區別。

但是,通過本地C++創建服務(據我現在可以記住)非常痛苦,並且花了相當長的時間。使用.NET,它更容易,更快速。說實話,我從來沒有需要創造一些超級重要的高速服務。我在.NET中創建了很多服務,並且他們成功地完成了他們的工作。在這些情況下,業務最終結果比實際業績更重要。

這完全是關於你的需求,但正如有人在評論中所說,服務將像程序員寫的一樣穩定。如果你更習慣於在.NET中創建一個控制核反應堆的服務,請在.NET中執行。 :-)

-1

C++服務,或任何win32可執行文件,將繼續在多個版本的windows上運行,包括未來和過去。這給win32的使用壽命和對服務器變化的抵抗力。您的C++服務可能不會有太多或完全不依賴於服務器上安裝的任何東西。這減少了失敗點的數量。

.net應用程序非常脆弱,可能會花費大量金錢來修復失敗的.net應用程序。脆弱性來自於應用程序對服務器上安裝的.net框架版本的挑剔。微軟在.net版本上的使用壽命很短。 .Net具有很多依賴性,這些依賴性會增加失敗點,例如高數量或彙編文件以及敏感的配置文件。

總之,由於win32的穩定性和更少的依賴關係,C++/Win32將會更加穩定。