0

WindowsNTサービスが.Netアプリケーションではなくc++で作成されたものよりも安定している、またはその逆の技術的/理論的理由があるかどうかを知りたいだけです。

実際、私は2つのNtサービスを持っていました。1つはcppで作成され、もう1つは.Netアプリケーションで作成されました。両方とも開始モードで表示されているように見えますが、応答するには、.Netによって作成されたサービスを頻繁に(平均して2日に1回)再起動する必要があります。.Netサービスのこの奇妙な振る舞いについて知りたいと思ったとき、私の友人の何人かはOSの内部に関連する答えを思いつき、何人かは.Netがそのように構築されたと言います。私は.Netプラットフォームをまったく知らないので、このフォーラムが私の試みの1つである理由を見つけることにしました。

ありがとう

アニル

4

2 に答える 2

2

おそらく、.NETよりもC ++(ネイティブの場合)の方がある程度のパフォーマンスが得られますが、これは起動時のみです。それらが両方とも稼働し始めたら、大きな違いはないはずです。

ただし、ネイティブC ++を使用してサービスを作成することは(私が今覚えている限り)本当に苦痛であり、かなりの時間がかかりました。.NETを使用すると、はるかに簡単かつ高速になります。正直なところ、非常に重要な高速サービスを作成する必要はありませんでした。私は.NETでかなりの数のサービスを作成しましたが、それらは正常に機能します。これらの場合、ビジネスの最終結果は実際のパフォーマンスよりも重要でした。

それは本当にあなたのニーズに関するものですが、誰かがコメントで言ったように、サービスはプログラマーが書いたのと同じくらい安定しています。.NETで原子炉を制御するためのサービスを作成する方が快適な場合は、.NETで作成してください。:-)

于 2012-04-25T14:47:46.687 に答える
1

C ++サービス、または任意のwin32実行可能ファイルは、将来と過去の両方で、複数のバージョンのWindowsで引き続き機能します。これにより、win32の寿命が長くなり、サーバーの変更に対する耐性がほぼ高まります。C ++サービスには、サーバーにインストールされているものへの依存関係がほとんどないか、まったくない可能性があります。これにより、障害点の数が減ります。

.Netアプリケーションは非常に壊れやすく、失敗した.netアプリケーションの修復に多額の費用がかかる可能性があります。脆弱性は、サーバーにインストールされている.netフレームワークのバージョンに問題があるアプリケーションに起因します。Microsoftの.netバージョンの寿命は短いです。.Netには、多数のファイルやアセンブリファイル、機密性の高い構成ファイルなど、障害点を増やす多くの依存関係があります。

結論として、C ++ / Win32は、win32の安定性と依存関係がはるかに少ないため、はるかに安定します。

于 2017-06-17T03:32:34.313 に答える