- PR -

サービスのデバッグについて

1
投稿者投稿内容
ばなな
ベテラン
会議室デビュー日: 2005/06/16
投稿数: 91
投稿日時: 2006-01-19 11:42
Windowsアプリケーションで開発をしております。
常駐システムのため、サービスにexeを追加しました。
プログラムのデバッグを行おうと
サービスを開始・自動にした上で、デバッグ→プロセス→該当exeをアタッチ
したのですが、System.ServiceProcess.ServiceBase.Run(ServicesToRun)の個所で
ずっと処理をしており、OnStart関数に入ってくれません。
何か設定等があるのでしょうか?ご指導のほどよろしくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-01-19 11:50
とりあえず、過去ログを検索してください。

  Windows サービスのデバッグ方法

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2006-01-19 14:43
こんにちは。

引用:

ばななさんの書き込み (2006-01-19 11:42) より:
プログラムのデバッグを行おうと
サービスを開始・自動にした上で、デバッグ→プロセス→該当exeをアタッチ
したのですが、System.ServiceProcess.ServiceBase.Run(ServicesToRun)の個所で
ずっと処理をしており、OnStart関数に入ってくれません。



サービスを開始した時点ですでにOnStart関数が呼ばれているから、
その後、デバッグ→プロセス→該当exeをアタッチをしても手遅れで、
もうOnStart関数には入らないでしょうね。

手動でサービスプロセスにアタッチするのではなく、
サービスプロセス側からデバッガを起動するようにすれば良いと思います↓
コード:
protected override void OnStart(string[] args)
{
	// サービス開始時にデバッガを起動する
	System.Diagnostics.Debugger.Launch();

	// 以下サービスを開始するためのコード
	…
}


ばなな
ベテラン
会議室デビュー日: 2005/06/16
投稿数: 91
投稿日時: 2006-01-19 14:51
System.Diagnostics.Debugger.Launch()
を追加することでアタッチされデバッグができるようになりました。
ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)