2

議論の続きは別の投稿で始まりました:私はWindowsサービスを使用してWCFメール送信者をホストしました。サービス自体は非常に単純です。DataContractを使用して基本的なSystem.Net.Mail.MailMessageクラスプロパティ(添付ファイルをサポートします。前述の投稿、edosoftによるコードを参照してください)とSystem.Net.Mail.SmtpClientクラスを使用して実際に電子メールを送信します。使用された.NETFrameworkは3.5SP1(VS2008を使用)でした。

アセンブリ内ですでにコードが機能していることに注意してください。演習は、WCFサービスを使用して機能を公開することだけでした。basicHttpBindingエンドポイントバインディングに使用しましたが、追加の構成はありません。

デスクトップ環境(Windows XP)でサービスをテストしたところ、次のことに気づきました。

  • 電子メールは、WCFサービスを呼び出してから最初の10〜15秒以内にWindowsサービスを再起動した場合にのみ送信されました。それ以外の場合は、何も起こりません。

  • サービストレース/ログファイルには例外/エラーメッセージはありません。

  • SmtpClient.Send(MailMessage msg)メソッドを呼び出したり、サービスコードを実行したりするときに、例外/エラーメッセージは表示されません。

私はしばらくの間、さまざまなバインディングと構成で遊んでいましたが、別のスレッドからメッセージを送信しようとしても、変更はありませんでした。私は実際にこの問題に関連するフォーラムの質問に出くわしました。ASMXWebサービス内から呼び出された同じメソッドは、IISRESETが実行された場合にのみ機能します。WCFで使用されているのと同じ送信コードを使用してASMXWebサービスを作成することで、この問題を再現することができました。IISでWCFサービスをホストすることも役に立ちませんでした(同じ問題)。

次に、Windows 2008環境(Windowsサービスがホストされている)にサービスを展開することにしました。元の単純なコードに変更はありません。同じ構成、同じすべて。それはすぐに機能し、遅延や私が特定できるその他の問題はありませんでした。誰かがこの問題について何か考えを持っていますか?今からWindows2003環境で試してみますが、それが実際に既知のバグ/制限であるのか、それともASMXのバグに関連しているのか(見たところ)を知りたいのです。誰かが以前にそれを見たことがありますか?

ありがとう、

4

0 に答える 0