1

添付ファイル付きのメールを送信する必要があります。私のコードは 4 MB 未満のファイルに対してのみ機能します。私はすでにネット上ですべてをチェックしましたが、誰もが同じ解決策を提案しています.それは、私がすでに行ったwebconfigのhttpruntime属性を変更することです.

<httpRuntime maxRequestLength="10000" executionTimeout="1500"  />

Web構成で「タイムアウト」属性を持つすべてを変更しました.IISのアプリケーション構成でキープアライブも変更しましたが、このすべての変更を行った後でも、アプリケーションに問題が残ります.4MBを超えるファイルをアップロードしようとするたびに.正確に 1.5 分後に接続がタイムアウトします。

クリックイベントのコード

protected void btnSend_Click(object sender, EventArgs e)
        {
            MailMessage msg = new MailMessage();
            SmtpClient smtp = new SmtpClient();
            string strFrom = txtFrom.Text;
            string strTo = txtTo.Text;
            string strSubject= ddlTemplate.SelectedItem.Text.ToString();
            string strBody =txtBody.Text;
            string strCC =txtCC.Text;
            string strBCC =txtBCC.Text;
            if (this.fuAttachments.HasFile)
            {
                Attachment at = new Attachment(fuAttachments.PostedFile.InputStream,fuAttachments.PostedFile.ContentType);

                at.ContentDisposition.FileName = this.fuAttachments.FileName;
                msg.Attachments.Add(at);


            }
           smtp.EnableSsl = true;

            msg.From = new MailAddress(strFrom);
            msg.To.Add(strTo);
            msg.Subject = strSubject;
            msg.Body = strBody;

            //smtp = new SmtpClient("localhost");
            //smtp.UseDefaultCredentials = true;

            try 
            {
                smtp.Send(msg);
            }
            catch (SmtpException Ex)
            {

                throw;
            } 

            if (msg.Attachments.Count > 0)
            {
                //Clear the attachments and delete the sessionid folder from tempFiles 
                msg.Attachments.Dispose();
            }

        }
4

5 に答える 5

1

アプリケーションで原因を見つけました。約1.5分後にプロセスを停止していたのはsmtpクライアントのtimeoutプロパティです。このプロパティのデフォルト値は100秒で、1500秒に変更しました(このプロパティはms単位の値を取るため1500000ms)。添付ファイル付きで正常にメール送信されました。

smtp.Timeout = 1500000;

詳細については、こちらをご覧ください。

ちなみに私は21mbのアタッチメントでそれをテストしました。

于 2012-04-25T09:18:38.543 に答える
1

ファイルをアップロードするためのデフォルトの制限があります。この問題を解決するには、このリンクを参照してください

http://frazsundal.blogspot.com/2011/02/request-filtering-module-is-configured.html

于 2012-04-24T07:32:18.823 に答える
1

あなたのweb.configで

この行を追加

<system.web>
   <httpRuntime maxRequestLength="10000" />
</system.web>

アプリケーションのmaxRequestLength="10000"アップロードの最大サイズを 10 MB にします。

于 2012-04-24T08:40:00.177 に答える
0

httpRuntime ノードの maxRequestLength を試してください。executionTimeout を変更する必要がある場合もあります。

于 2012-04-24T07:41:09.380 に答える
0

これは、この問題SmtpClient.Send 添付ファイルの最大サイズに似ているため、おそらく SMTP サーバーの問題です - 設定を確認してみてください。

于 2012-04-24T12:23:15.900 に答える