2012-04-25 61 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将会更加稳定。