パート マネージド (C#) およびアンマネージド コード (C/C++ ライブラリ) を使用する .NET ベースの Windows サービスを開発しました。
一部のドメイン環境 (ドメイン abc.com 内の Win 2k3 32 ビット サーバーなど) では、サービスの開始に 30 秒以上かかる場合があり (特に OS の再起動時)、サービスの開始に失敗します。エンタープライズ レベルのセキュリティと関係があると思われますが、確かなことはわかりません。
http://msdn.microsoft.com/en-us/library/aa720255%28VS.71%29.aspx
私は次のことを試みましたが成功しませんでした: - using ディレクティブをサービスベースの実装から可能な限り遠ざけることで参照の読み込みを遅らせます (特に xml 名前空間 - 読み込みの遅延を引き起こすことがわかっています) - log4net の読み込みと構成の遅延 - コードのプリコンパイルngen を使用する - ワーカー スレッドの開始を遅らせる - マニフェストを追加/削除する + 内部で設定された decencies を追加する - バイナリに署名/署名解除する - 構成設定を使用する (多くの設定があり、すべてのスコープ レベルが application に設定されている) 後述可能な限り - すべての依存関係を GAC に追加します
Main メソッドが実装されているクラスにセキュリティ要求を追加することはまだ試していません。自動生成されたコードを調べた後、設定クラスがシングルトーンであり、呼び出し時にインスタンスを取得することに気付いたため、独自の構成ローダーを実装しようとしませんでした。
log4net の依存関係を完全に削除することで機能しましたが、これはオプションではありません。
ネットワーク カードが無効になると、サービスはすぐに開始されます。