-1

メールアドレスのリストを定期的にダウンロードしてメールを送信するシンプルなサービスを作りたいと考えていました。

私はサービスの作成を開始し、その前に、電子メール送信が機能するかどうかをテストしました - はい、機能します。

問題は、Main() でメーリング メソッドを使用するだけで電子メールを送信しているときにタイムアウトが発生しないのに対し、サービスとしてコードを実行しているときに同じことをしようとすると (InstallUtil. exe、次にマイコンピュータ/管理に移動してサービスを開始します)

パーミッション/特権の問題であると思いますが、それを解決する方法がまったくわかりません.ファイアウォールを無効にしようとしましたが、効果はありませんでした. onStart()、onStop() メソッド、またはサービスが開始するスレッドでメーリング メソッドを呼び出すと、「リモート サーバーに接続」できません。さまざまなポートと SMTP サーバーを使用してみましたが、すべて同じです。サービス以外のプログラムでコードを実行する限り、機能します。LocalSystem、NetworkService itpなど、さまざまなサービス設定を試しましたが、すべて同じです。

同じことがWindowsレジストリへの変更にも当てはまります- Main() の実行中またはサービスインストーラーでさえも読み取り/書き込みを行うことができます-しかし、サービスがそれを使用したいときは機能しません。

助けてください!

4

1 に答える 1

1

サービスは別のアカウントで実行されます。(通常はサービス)

コードがこれを考慮していることを確認する必要があります。インタラクティブ モードで実行しているときは、現在の資格情報で実行しています。

すべての例外をログ ファイルに記録していますか? サービスにはユーザー インターフェイスがないため、すべてのエラーをログ ファイルまたはイベント ログに記録する必要があります。

于 2011-09-27T11:29:53.830 に答える