Razor MVC3のWebサイトを作成し、そこから電子メールを送信できます。
すべてのユーザーとメール情報を取得し、フォーマットされたメールを送信するスレッドを開始するサービスを作成しました。
私は自分のスレッドプールを作りました。
私のコンピューターでは、すべてが完全に機能します。私は毎秒メールを送信します。
しかし、Amazonサーバーec2にWebサイトをデプロイすると、Eメールの送信が非常に遅くなり(3分/メール)、Eメールの半分が失敗します。
アマゾンサーバーは私のコンピューターよりもはるかに強力です。帯域幅についても同じです。見逃したのがIISなのかスレッド構成なのかわかりません。
何か案は?
//-----------------コード送信メール------------------------
using (SmtpClient smtp = new SmtpClient()
{
Host = serverSMTP,
Port = 25,
EnableSsl = false,
DeliveryMethod = SmtpDeliveryMethod.Network,
Credentials = new NetworkCredential(senderAddress.Address, carteiraPassword),
Timeout = 10000
})
{
ServicePointManager.ServerCertificateValidationCallback = delegate(object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; }; //test
smtp.Send(message);
}
//-----------------クラススレッド------------------------
public class MyThread
{
#region Param
public string Id { get; set; }
public RunNewThread RunThreadDelegate;
private System.Threading.Thread Thread { get; set; }
#endregion
public SiscobThread(RunNewThread RunThreadDelegate)
{
this.RunThreadDelegate = RunThreadDelegate;
}
public void Init()
{
this.Thread = new System.Threading.Thread(this.RunThread);
MsgManager.Instance.SendError("Thread born " + this.Id, null);
}
private void RunThread()
{
this.RunThreadDelegate();
}
public void Start()
{
this.Thread.Start();
}
public void Stop()
{
this.Thread.Abort();
}
}