問題タブ [installutil]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows-services - Windows サービスのカスタム イベント ログ
プロジェクト インストーラーで、カスタム イベント ログを作成しています。しかし、サービスが開始されると、すべてのログがカスタム ログではなく「アプリケーション」に記録されます。以下は、インストーラーに追加したコードです。
さらに、サービスの名前は MyService.exe です。
サービスをアンインストールして再インストールすると、次のインストール ログでインストールが失敗します。
トランザクション インストールの実行。
インストールのインストール フェーズの開始。D:\MyService\MyService\bin\Release\MyService.exe アセンブリの進行状況については、ログ ファイルの内容を参照してください。このファイルは、D:\MyService\MyService\bin\Release\MyService.InstallLog にあります。
インストール フェーズ中に例外が発生しました。System.ArgumentException: ソース MyServices は既にローカル コンピューターに存在します。
インストールのロールバック フェーズが開始されます。D:\MyService\MyService\bin\Release\MyService.exe アセンブリの進行状況については、ログ ファイルの内容を参照してください。このファイルは、D:\MyService\MyService\bin\Release\MyService.InstallLog にあります。
ロールバック フェーズが正常に完了しました。
トランザクションのインストールが完了しました。
そして、これがログエントリの書き方です。
EventLog.WriteEntry("MyServices", logMessage, logType);
誰かが私が何をしているのか教えてください。
c# - Windows サービスのインストールでの InvalidOperationException
私は数か月前に開発した Windows サービス アプリを持っていますが、遠く離れた Windows Server 2012 でも問題なく動作していました。しかし、マイナー アップデートの後、サーバーに再インストールする必要がありました。このサーバー、エラーが発生します。完全なコマンド ライン ダイアログは次のとおりです。
アセンブリ 'c:\Program Files\My Company\MyServiceApp\MyServiceApp.exe' をインストールしています。影響を受けるパラメータは次のとおりです。
logtoconsole =
assemblypath = c:\Program Files\My Company\MyServiceApp\MyServiceApp.exe
ログファイル = c:\Program Files\My Company\MyServiceApp\MyServiceApp.InstallLogサービス SendHistoryService をインストールしています...
サービス SendHistoryService が正常にインストールされました。
EventLog ソース SendHistoryService をログ アプリケーションに作成しています...
System.ServiceProcess.ServiceInstaller の OnAfterInstall イベント ハンドラで例外が発生しました。
System.InvalidOperationException: コンピューター '.' でサービス SendHistoryService を開始できません。
内部例外 System.ComponentModel.Win32Exception がスローされ、次のエラー メッセージが表示されました: サービスは開始要求または制御要求にタイムリーに応答しませんでした。
アセンブリ 'c:\Program Files\My Company\MyServiceApp\MyServiceApp.exe' をロールバックしています。
影響を受けるパラメータは次のとおりです。logtoconsole =
assemblypath = c:\Program Files\My Company\MyServiceApp\MyServiceApp.exe
ログファイル = c:\Program Files\My Company\MyServiceApp\MyServiceApp.InstallLogソース SendHistoryService のイベント ログを以前の状態に復元しています。
サービス SendHistoryService はシステムから削除されています...
サービス SendHistoryService はシステムから正常に削除されました。
サービス インストーラーは、私のローカル マシン (W8.1) でも完全に動作することに注意してください。インストーラーには、実際には "SendHistoryService" と "GeneratorService" という 2 つの個別のサービスが含まれていますが、ご覧のとおり、インストーラーは最初のインストールを試行中に失敗します。関連性がある場合、プロセスは次の行で約 30 秒間スタックします。
もちろん、私が最初にチェックしたのは OnAfterInstall イベント ハンドラですが、そこでは何も問題が発生していないようです。
ここで何が起こっているのか本当に理解できません。どんな手掛かり ?
編集: ProjectInstaller クラスでサービスを開始する行にコメントを付けてみました。これでインストールは正常に実行されますが、サービスを開始しようとすると失敗し、次のエラー メッセージが表示されます。
Windows は、ローカル コンピューターで SendHistoryService サービスを開始できませんでした。
エラー 1053: サービスは開始要求または制御要求にタイムリーに応答しませんでした。
c# - デバッグ フォルダーにインストールすると、Windows サービスが開始してから停止する
セルフホスティング WCF サービスがあります。Windows サービスによってホストされます。installutilでインストールしました。したがって、bin フォルダーには、Debug と Release の 2 つのフォルダーがあります。リリース フォルダーに windowsservice をインストールすると、通常どおり起動し、WCF サービスをホストしますが、デバッグ フォルダーにインストールすると起動しません。次のエラー メッセージが表示されます。
「ローカル コンピューターのサービスが開始されてから停止しました。他のサービスまたはプログラムによって使用されていない場合、一部のサービスは自動的に停止します。」
誰かがこれを修正する方法を知っていますか?
c# - InstallUtil ワークフローで例外をキャッチ
C# コードで、installUtil を使用したサービスのインストール中にエラーが発生しました。独自のインストーラーを使用しています。インストールは 90% のケースで正常に動作するため、インストーラーのすべてのコードと installUtil のパラメーターは正常です。失敗するシナリオは私の CI ジョブの下にあります。同じコードを使用して複数のサービスを並行してインストールしていますが、例外をキャッチできません。私が持っているのは、次のメッセージをログに記録することだけです:
System.Configuration.Install.AssemblyInstaller インストーラーのコミット フェーズ中に例外が発生しました。System.InvalidOperationException: コレクションが変更されました。列挙操作が実行されない場合があります。インストールのコミット段階で例外が発生しました。この例外は無視され、インストールが続行されます。ただし、インストールの完了後、アプリケーションが正しく機能しない場合があります。
私は自分のインストーラークラスで、オーバーライドできるすべてのフェーズとメソッドの間にログを記録しました。また、System.Configuration.Install.Installer のソースコードをいくつか取得しました。そこにもログを記録していますが、何も記録していません...
Install メソッドの後、Commit の前に例外が発生しています。
System.Configuration.Install.Installer のコミット フェーズの実行の直前に、次のようなコードが出力されます。
次のようにログに記録します。
インストール フェーズが正常に完了し、コミット フェーズが開始されます。ログ ファイルの内容を参照してください... アセンブリをコミットしています .... 影響を受けるパラメータは次のとおりです: ... System.Configuration.Install.AssemblyInstaller のコミット フェーズ中に例外が発生しました... コミット フェーズは正常に完了しました。トランザクションのインストールが完了しました。インストールのコミット段階で例外が発生しました。
ご覧のとおり、例外はインストール フェーズの後、コミット フェーズの前に発生しますが、カスタム インストーラー クラスまたは System.Configuration.Install.Installer のすべてのオーバーライドされたメソッドのどこにもありません。
この例外をキャッチする方法や、サービスのインストール中に実行される完全なワークフローのより良いビューについて、ヒントを教えてもらえますか??
ありがとう
c# - Windows サービスの TCP IP リスナー
バックグラウンドで実行し、着信トラフィックをリッスンする必要がある Windows サービスを作成しようとしています (通常および通常の TCP リスナー)
私のコードは次のとおりです。
今、私が自分のサービスを開始するたびに私のサービスを開始しようとするたびにフリーズするので、作業方法をまったく見ていない場合:
つまり、サービスが Thread または Work メソッドを使用することはありません。以前のログから、while ループに入り、サービスがタイムアウトすることがわかります。
c# - 同じマシンで複数の .net サービスを実行する方法
同じマシンで複数回実行する必要がある .Net サービスがあります。私のexeファイルとサポートファイルは、c:\folder1\とc:\folder2\の2つの異なるフォルダーにあります。
しかし、次のいずれかを発行すると、ServiceName が希望どおりに変更されません。
サービスが作成されていない場合、InstallUtil はサービスを登録しますが、指定した serviceName には登録しません。
サービスが登録されている場合 (たとえば、folder1 サービス)、InstallUtil は、「指定されたサービスが既に存在する」というフォルダー2 の登録でエラーになります。
sc コマンドは、構文が間違っているかのように、sc コマンドのヘルプ情報のみを表示します。
同じマシンで同じサービスを複数回登録する適切な方法は何ですか?