openpopメールクライアントを使用して電子メールを取得するWindowsサービスを作成しました。次に、件名と本文の更新データベースとすべての種類のものを通過します。また、添付ファイルをダウンロードして、年、月、曜日の電子メールのタイムスタンプに基づいてドライブにフォルダディレクトリを作成し、イメージを保存します。そこで、クラスライブラリプロジェクト、デバッグ用のWinformプロジェクト、およびWindowsサービスプロジェクトを使用して、開発中のマシンにこのサービスを構築しました。 すべてのロジックはClasslibraryに含まれています。私はライブラリを構築し、フォームとWindowsサービスの両方でdllを参照します。私が自分のマシンにサービスをビルドし、installutilを使ってインストールすると、うまく動作し、やるべきことをします。しかし、プロダクションに出掛けたとき、OSはWindows Server 2003 R2であり、LIVEデータベースには別の接続文字列を使用しています。Windowsサービスのアクセス許可の問題
変更されたのは接続文字列とオペレーティングシステムだけです。私はサービスをインストールし、それは正常にインストールされたが、何もしません。それは、フォルダを作成したり、ディスクにイメージを保存したりしません。私はエラーをログに記録するべきだったはずですが、これは私の最初の仕事であり、私はこの分野では新しいです。だから私はいくつかのロギングイベントを書こうとしましたが、ログを作成せずイベントを書き込んでいません。事実、ログを作成してイベントを書き込もうとすると、オンスタートサブの最初の呼び出しのように、それはそれをしません。今私は迷っています。どこから行くのかわかりません。あなたがこれを読む時間があれば、あなたが持っている可能性のある入力を感謝します。
これは私のOnStartメソッドのコードです。
Dim LiveEvents As New EventLog
If Not EventLog.SourceExists("MySource") Then
EventLog.CreateEventSource("MySource", "GL")
End If
LiveEvents.Source = "MySource"
LiveEvents.Log = "GL"
LiveEvents.WriteEntry("ServiceStarted and is working.", EventLogEntryType.Information)
Dim Logic As New ProcessMail
workTimer = New Timer(New TimerCallback(AddressOf Logic.ProcessMessages), Nothing, (1000 * 60 * 10), (1000 * 60 * 10))
LiveEvents.WriteEntry("Called Our DLL", EventLogEntryType.Information)
MyBase.OnStart(args)
ここで質問がわからない場合は、 1. Windows Server 2003 R2にWindowsサービスを使用してディレクトリを作成し、ファイルを保存する必要がある場合。どのSystem System.ServiceProcess.ServiceInstallerアカウントプロパティを使用する必要がありますか? 2.ディレクトリに読み書きアクセス権を持つアクセス権を持つサービスをインストールするために、winows server 2003 R2で行う必要のある特別なセットアッププロセスはありますか?
ご連絡ありがとうございました。
サービスは誰が実行していますか?ローカルシステムまたは特定のアカウント?どのフォルダを作成しようとしていますか?あなたは戻っていくつかの計測器を追加して、起こっているエラーをキャッチして、それが何の不満を抱いているのかを把握する必要があります。 – Joe
サービスは管理者として実行し、c:/ imagesフォルダにセットアップ中にその場でフォルダを作成する必要があります。そして、ローカルシステムが最も強力な場合は、各アカウントプロパティに対して4つのビルドを作成しました。それを使用します。 –
SCMにはどのようなアカウントが設定されていますか? – Joe