• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VB2005でサービスプロジェクトのサービス開始処理でのエラー)

VB2005でサービスプロジェクトのサービス開始処理でのエラー

このQ&Aのポイント
  • VB2005の初心者です。サービスプロジェクトを作成していますが、サービスを開始するOnStart処理で例外が発生してしまいました。サービスではなく、通常のFormで同じ処理をするとうまくいくのですが、サービスだとうまくいきません。
  • サービスプロジェクトで、クライアントとTCP/IP接続をするのですが、OnStart処理は下記です。Protected Overrides Sub OnStart(ByVal args() As String) Dim LbFlg As Boolean Try G_LogWriter = New clsLoopLogFile() G_LogWriter.Open(Application.StartupPath() + '\EHROrcaService_Logfile.log', 180, 50, True) 'リスナーを作成する 'Gserver = New TcpListener(System.Net.IPAddress.Parse('192.168.7.213'), 8210) 'リスナーを開始する。Stopするまで受信を待機する。 Gserver.Start() 'ワーカースレッドの作成と開始 スレッドにしないとサービスを起動できない G_worker = New Threading.Thread(AddressOf AcceptTcpClient) G_worker.Start() 'リスナーの開始に失敗した場合 Catch ex As Exception LbFlg = WriteLogFile(ex.ToString) LbFlg = WriteLogFile(ex.Source) LbFlg = WriteLogFile(ex.Message) LbFlg = WriteLogFile(ex.InnerException.Tostring) Gserver.Stop Finally End Try End Sub
  • G_LogWriter = New clsLoopLogFile() で落ちてしまいます。エラーの内容は下記です。 System.TypeInitializationException: 'EHRcommon.basEhrtascal' のタイプ初期化子が例外をスローしました。 ---> System.NullReferenceException: オブジェクト参照がオブジェクト インスタンスに設定されていません。G_LogWriter は、basモジュール、'EHRcommon.basEhrtascal' でPublicで定義されていますが、どうしてもエラーが出てしまいます。質問内容が漠然としているかもしれませんが、通常のFormだとエラーは出ないのに、サービスプロジェクトだとエラーとなるため、困っています。何かヒントになることでも良いので、皆様の知恵をお借りできれば幸いです。よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

> G_LogWriter = New clsLoopLogFile() で落ちてしまいます。 clsLoopLogFileコンストラクタで例外が発生している? >エラーの内容は下記です。 本来の例外を握りつぶした上で、Catchで二次バグが発生している? これでは、原因をつかめない。 Try-Catchは適切な範囲で行うべきである。

参考URL:
http://d.hatena.ne.jp/NAL-6295/20050909
noname#51596
質問者

お礼

回答ありがとうございます。 バグを解析しましたところ、 サービスで、サーバー上のiniファイルを読みにいっているのですが、 うまく読み込めておらず、 フォルダのアクセス権限がなかったことが原因のようでした。 権限を設定すると読み込めないため、 とりあえず権限をなくしたところ、正常に動作するようになりました。 質問内容が的を得ておらず、申し訳ありませんでした。

関連するQ&A