2

Topshelfを使用して記述された Windows サービスがあります。LocalSystem を使用するのではなく、権限が制限された Windows アカウントを使用して実行するように構成しようとしています。統合認証を使用してデータベースに接続したいので、これも必要です。

このサービスは、LocalSystem として実行された場合 (ただし、資格情報を含むデータベース接続文字列を使用) に機能し、コンソール アプリケーションを制限付きアカウントとして (runas を使用して) 実行した場合にも機能します。

ただし、サービスを開始しようとすると、サービス コントロール マネージャーが応答を待ってタイムアウトします。

サービスは開始要求または制御要求にタイムリーに応答しませんでした。

また、アプリケーション ポップアップ イベント ログに次の情報が記録されます。

アプリケーション エラー : 場所 0x77e4bef7 のアプリケーションで、不明なソフトウェア例外 (0xc06d007e) が発生しました。

アプリケーションが最初に行うことは、ログ ファイルへの書き込みですが、サービスを開始すると、ログ ファイルに到達しません。コンソール経由で実行すると、ロギングが機能します。

不足している可能性のあるものや、次に試す可能性のある提案はありますか?

4

3 に答える 3

2

この問題は、TopShelf ではなく、サーバー (ドメイン コントローラー) に関連しているようです。.NET サービス コンポーネントで構築されたサービスも同じ動作を示します。

サービスは別のマシン (同じドメイン内) で正常に実行されます。

残念ながら、これは問題の診断には役立ちませんが、許容できる回避策が得られます。

于 2010-02-02T13:24:18.367 に答える
0

.net 2.0 で記述されたいくつかのサービスでこれを見始めたところです。サーバーが起動すると問題なく起動しますが、一日中再起動すると起動せず、このエラー メッセージが表示されます。

彼らは現在、ボックスの管理者権限を持つドメイン アカウントで実行されていましたが、キックのためにローカル システムに切り替えたところ、サービスは正常に開始されました。停止し、ドメイン アカウントに戻して (パスワードを再入力)、正常に再開しました。

これが「修正」と見なされるかどうかはわかりませんが、それが私にとってはうまくいきました。

于 2009-10-09T16:45:23.437 に答える
0

Windows サービスをデバッグする方法について説明している MSDN の記事「Windows サービスのデバッグ」を確認してください。

于 2009-10-01T02:25:45.570 に答える