2011-10-11 15 views
1

私のWindowsタスクスケジューラでは、毎日C#コンソールアプリケーションを実行するタスクをスケジュールしています。このアプリケーションは、データベースにデータを送信し、電子メールを送信します。Windowsタスクスケジューラはアプリケーションを実行していますが、電子メールを送信できません

正常に実行すると動作しますが、タスクスケジューラで実行すると、データベースにデータが送信されますが、電子メールを送信することはできません。

これを修正する方法についてのご意見はありますか?

EDIT:

はい、私は、コンソールアプリケーションを介して正しく送信することができます。それは既定のネットワーク資格情報を使用します。ただし、イベントログを見ると、次の.NETランタイム例外がログに記録されます。

フレームワークのバージョン:v4.0.30319
説明:処理されなかった例外が原因でプロセスが終了しました。
例外情報:System.IO.IOException
スタック:iTextSharp.text.pdf.PdfPages.WritePageTree()iTextSharp.text.pdf.PdfWriter.Closeで
()で

iTextSharp.text.pdfでReadReutersRates.Program.Mainで.PdfDocument.Close iTextSharp.text.Document.Closeで()
()
ReadReutersRates.Program.SavePDFで (可能System.DateTime)
(可能System.String [])


私はそれがpdfファイルと関係があると思います私は電子メールに添付しています。しかし、私が手動で実行すると、これがうまくいくのは非常に奇妙です。

+0

これらのメールを送信するために使用するコンポーネントは何ですか。 SMTPサーバーはあなたのwinserviceからアクセスできますか? –

+0

私はsystem.net.mailを使用しています。私のsmtpサーバはアクセス可能です.. –

+0

badmailフォルダのメールはありますか?コンソールアプリケーションから正しく送信できますか?あなたはSMTPサーバでどのように認証しますか? –

答えて

0

これは、権限エラー、あなたがコンソールを介して実行中のタスクを実行しているユーザーよりも多くの権限を持つことになりますときのように、タスクを実行しているユーザーです。

使用しているPDFアプリケーションが一時ファイルなどに書き込もうとしていて、アクセス権がないようです。 (電子メールにPDFアタッチメントが添付されていると仮定しています)。

作業が必要な管理者としてタスクを実行した場合は、より制限されたユーザーとして実行して作業できますそれをロックする場所に適用するアクセス許可を指定します。

関連する問題