0

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

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

谢谢

阿尼尔

4

2 回答 2

2

与使用 .NET 相比,使用 C++(如果它是本机的)可能会获得一些性能,但这只是在启动期间。一旦它们都启动并运行,应该没有太大区别。

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

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

于 2012-04-25T14:47:46.687 回答
1

C++ 服务或任何 win32 可执行文件将继续在未来和过去的多个版本的窗口中工作。这使 win32 的寿命和几乎不受服务器更改的影响。您的 C++ 服务可能不会对服务器上安装的任何内容有太多或根本没有依赖项。这减少了故障点的数量。

.Net 应用程序非常脆弱,修复失败的 .net 应用程序可能需要花费大量资金。脆弱性来自应用程序对安装在服务器上的 .net 框架版本的挑剔。Microsoft 在 .net 版本上的生命周期很短。.Net 有很多依赖项会增加故障点,例如大量的程序集文件和敏感的配置文件。

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

于 2017-06-17T03:32:34.313 回答