c ++ Windows服务比.Net Windows服务更稳定吗?

时间:2012-04-25 14:25:43

标签: c++ .net windows-services

我只是想知道是否有任何技术/理论上的原因使得使用c ++而不是.Net应用程序创建的Windows NT服务更稳定,反之亦然。

实际上我有两个Nt服务,一个用cpp制作,另一个用.Net应用程序制作。我观察两者都显示在启动模式,但我需要重新启动.Net创建的服务(平均每2天一次)来响应。当我试图了解.Net服务的这种奇怪行为时,我的一些朋友提出了与操作系统内部相关的答案,有人说.Net就是这样构建的。我完全没有意识到.Net平台所以在找到这个论坛是我的尝试之一的原因。

由于

阿尼尔

2 个答案:

答案 0 :(得分:2)

使用C ++(如果是原生的)比使用.NET可能会获得一些性能,但这只会在启动期间获得。一旦它们启动并运行,就不会有太大差别。

但是,通过原生C ++创建服务(据我现在所记得)真的很痛苦,而且需要花费很多时间。使用.NET,它更容易,更快捷。说实话,我从来没有必要创造一些超级重要的高速服务。我在.NET中创建了许多服务,他们成功地完成了自己的工作。在这些情况下,业务最终结果比实际业绩更重要。

这完全取决于你的需求,但正如有人在评论中所说,服务将像程序员所写的一样稳定。如果您更愿意在.NET中创建用于控制核反应堆的服务,请在.NET中进行。 : - )

答案 1 :(得分:-1)

C ++服务或任何win32可执行文件将继续在未来和过去的多个版本的Windows中运行。这使win32具有长寿命,并且几乎不受服务器变化的影响。您的C ++服务可能不会对服务器上安装的任何内容产生很多依赖或根本不依赖。这减少了故障点数。

.Net应用程序非常脆弱,修复失败的.net应用程序可能需要花费很多钱。脆弱性来自于安装在服务器上的.net框架版本上的应用程序。微软在.net版本上的使用寿命很短。 .Net有很多依赖项,可以增加失败点,例如高数字或汇编文件和敏感的配置文件。

总之,由于win32的稳定性和依赖性较小,C ++ / Win32将更加稳定。