2016-09-02 10 views
0

ユーザー登録時に電子メールで送信する必要のあるXMLファイルを作成します。 XMLファイルを作成した後、添付ファイル名(ServeMapPathを指定)として渡し、電子メールプログラムはファイルで電子メールメッセージを送信します。そうです。しかし、私はそのファイルを削除したい。SendEmail()に送信した後、プロセスはファイルにアクセスできません

SmtpClientクライアント=新しいSmtpClient(settings.SMTPServer)が表示されます。電子メールを送信した後にファイルをロックしています。私が長い間待っても、それはロックされたままです。 Visual StudioのIISExpressを使用します。 Visual Studioが存在し、デバッグを再開した場合、ファイルを1回削除するか上書きすることができます。

これはVisual Studioまたは???の下での開発の特徴ですか?テストのための回避策はありますか? IISはファイルを運用サーバーにロックしたままにしますか?

答えて

1

私自身の問題に対する解決策を見つけるためのポイントを獲得できますか?

電子メール送信ルーチンはSMTPClientへの接続を作成し、新しいMessageも作成しました。私はclient.Dispose()を行いましたが、メッセージのためにしませんでした。私がmessage.Dispose()のようにいくつかのクリーンアップを実行すると、ファイルがロックされ、アプリケーションが終了するとアプリケーションがそれを削除することができました。

SmtpClient client = new SmtpClient(settings.SMTPServer); 
MailMessage message = new MailMessage(); 
.... 
//send message with attachment 
.... 
client.Dispose(); 
message.Dispose(); 

これが他の人に役立つことを願っています。

+0

あなたの質問に答えを見つけたという評判は+1です! –

関連する問題