我们使用带有c#的asp.net开发了一个Web应用程序。在某些时候,我们面临着一个非常困难的问题。 [英] we have developed a web application using asp.net with c#. at some point of time we facing a very diificult issue.

查看:56
本文介绍了我们使用带有c#的asp.net开发了一个Web应用程序。在某些时候,我们面临着一个非常困难的问题。的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述





我们使用带有c#的asp.net开发了一个Web应用程序。在某些时候我们面临一个非常困难的问题。



让我解释一下我的问题,



两个用户(A和B)使用mailmessage同时发送电子邮件。

电子邮件正文内容已更改B用户电子邮件正文内容发送给用户。



代码:

Hi,

we have developed a web application using asp.net with c#. at some point of time we facing a very diificult issue.

let me explain my issue,

Two users(A and B) send Email at same time using mailmessage.
that Email body content was change B user Email body content goes to A user.

code:

public override string SendReplyMail_To_Client(string TICKETNUMBER, string REPLYMESSAGE, int TemplateNumber, int Portal_Id, int Module_Id, string FromEmail, string ToEmail, string Att, string Added_CC, string subject, out string Error, out string ReplyError)
       {





ds_reply_mail = DataProvider.Instance()。Get_EmailTemplates_By_TemplateNumber(SqlParam);



ds_reply_mail = DataProvider.Instance().Get_EmailTemplates_By_TemplateNumber(SqlParam);

EmailSubject = ds_reply_mail.Tables[0].Rows[0]["EmailSubject"].ToString().Trim();
                         EmailText = DataProvider.Instance().Get_String((Byte[])ds_reply_mail.Tables[0].Rows[0]["EmailText"]);







for (int ColumnIndex = 0; ColumnIndex < ds_ticket.Tables[0].Columns.Count; ColumnIndex++)
                       {
                           if (EmailText.Contains(ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim()))
                           {
                               if (ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim() != "#REQUESTDESC#")
                               {
                                   EmailText = EmailText.Replace(ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim(), ds_ticket.Tables[0].Rows[0][ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim()].ToString().Trim());
                                   //EmailSubject = EmailSubject.Replace(ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim(), ds_ticket.Tables[0].Rows[0][ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim()].ToString().Trim());
                               }
                               else
                               {
                                   EmailText = EmailText.Replace(ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim(),  DataProvider.Instance().Get_String((Byte[])ds_ticket.Tables[0].Rows[0][ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim()]));
                                  // EmailSubject = EmailSubject.Replace(ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim(), ds_ticket.Tables[0].Rows[0][ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim()].ToString().Trim());
                               }
                           }
                       }

                       // Email Subject Replacement
                       for (int ColumnIndex = 0; ColumnIndex < ds_ticket.Tables[0].Columns.Count; ColumnIndex++)
                       {
                           if (EmailSubject.Contains(ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim()))
                           {
                               if (ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim() != "#REQUESTDESC#")
                               {
                                  EmailSubject = EmailSubject.Replace(ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim(), ds_ticket.Tables[0].Rows[0][ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim()].ToString().Trim());
                               }
                               else
                               {
                                   EmailSubject = EmailSubject.Replace(ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim(), ds_ticket.Tables[0].Rows[0][ds_ticket.Tables[0].Columns[ColumnIndex].ColumnName.Trim()].ToString().Trim());
                               }
                           }
                       }


                       if (EmailText.Contains("#REPLYMESSAGE#"))
                       {
                           EmailText = "<font style='color:Black'>" + EmailText.Replace("#REPLYMESSAGE#", REPLYMESSAGE) + "</font>";//EmailText.Replace("#REPLYMESSAGE#", REPLYMESSAGE);
                       }


                       MailMessage Mail = new MailMessage();
                       Mail.From = FromEmail;



Mail.To = cc;


Mail.To = cc;

if (subject != null && subject != "")
                               Mail.Subject = subject;
                           else
                               Mail.Subject = EmailSubject;
                           Mail.BodyFormat = MailFormat.Html;
   Mail.Body = EmailText;
                                SmtpMail.SmtpServer = Get_SMTP_Host_Server_Name();
SmtpMail.Send(Mail);







}

我如何在我的应用程序中处理这个问题?




}
how can i handle this issue in my application?

推荐答案

没有看到你的代码,我们不能准确,但我建议你需要看一下在你正在做什么 - 不知何故你使用的信息好像你的应用程序是唯一运行的。

检查:

1)你不应该使用 static 变量。

2)您不应该将信息存储在数据库中的单个位置,并假设没有其他用户也可以看到它。

3)你不应该使用最高价值作为我的价值来提供一个ID - 如果另一个用户在你的写作和你的阅读之间做同样的事情,你将得到他的价值。



您应该使用Session对象或用户PC上的Cookies来传输页面之间的数据。



对不起,如果这一切都含糊不清,但没有信息,我们就不可能了准确。
Without seeing your code, we can''t be precise, but I would suggest that you need to look at what you are doing - somehow you are using information as if your app was the only one running.
Check:
1) You should not be using static variables.
2) You should not be storing information is a single place in a database and assuming that no other user can also see it.
3) You should not be using the "highest value" as the "my value" to provide an ID - if another user does the same thing inbetween your write and your read, you will get his values.

You should be using the Session object, or Cookies on the user PC to transfer data from page to page.

Sorry if this is all vague, but without information we can be no more accurate.


这篇关于我们使用带有c#的asp.net开发了一个Web应用程序。在某些时候,我们面临着一个非常困难的问题。的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆