C# .Net窗口服务和ASP.Net web窗体具有相同的代码来发送SMS
我正在.Net窗口服务和asp.Net web表单中编写发送SMS代码,用于向客户端发送SMS,但我在每秒向MBLOX url发送SMS时遇到问题。问题是,当我使用web表单时,它向Mblox url发送60条短信/秒,但在Windows服务中,它只发送4条短信/秒,但两者的代码相同。请给我解决方案,我该怎么办 我正在asp.net web窗体和窗口服务中使用以下代码。但是web表单需要很短的时间,而窗口服务需要很长的时间。但我想使用窗口服务C# .Net窗口服务和ASP.Net web窗体具有相同的代码来发送SMS,c#,C#,我正在.Net窗口服务和asp.Net web表单中编写发送SMS代码,用于向客户端发送SMS,但我在每秒向MBLOX url发送SMS时遇到问题。问题是,当我使用web表单时,它向Mblox url发送60条短信/秒,但在Windows服务中,它只发送4条短信/秒,但两者的代码相同。请给我解决方案,我该怎么办 我正在asp.net web窗体和窗口服务中使用以下代码。但是web表单需要很短的时间,而窗口服务需要很长的时间。但我想使用窗口服务 public void SendMessageUsi
public void SendMessageUsingThread(string messagetext)
{
StreamReader objSreamReader = new StreamReader("D:/ExpressText/TestApplication/WindowService/TestWindowService/TestWindowService/Numbers.txt");
string MobileNumber = objSreamReader.ReadToEnd();
string[] NumberList = MobileNumber.Split(',');
Dictionary<int, string> objdictionary = new Dictionary<int, string>();
for (int i = 0; i < NumberList.Length; i++)
{
objdictionary.Add(i, NumberList[i].ToString().Replace('\n', ' ').Replace('\r', ' ').Trim());
}
for (int j = 0; j < objdictionary.Count - 1; j++)
{
System.Threading.ThreadPool.QueueUserWorkItem(e => { SendMTMessageNew(objdictionary[j], messagetext); });
}
}
public void SendMTMessageNew(string mobileNumber, string messagetext)
{
string requestId = string.Empty;
string OutXml = string.Empty;
try
{
string formatedMessage = formate4infoMessage(messagetext);
StringBuilder sb = new StringBuilder();
//int MessageCounter = GetMessageCounter();
string MessageCounter = mobileNumber.Substring(4);
sb.Append("<NotificationRequest Version=\"3.5\">");
sb.Append("<NotificationHeader>");
sb.AppendFormat("<PartnerName>{0}</PartnerName>", "XXXXXXXX");
sb.AppendFormat("<PartnerPassword>{0}</PartnerPassword>", "XXXXXXXX");
sb.AppendFormat("<Username>{0}</Username>", "XXXXXXXX");
sb.Append("</NotificationHeader>");
sb.AppendFormat("<NotificationList BatchID=\"{0}\">", MessageCounter);
sb.AppendFormat("<Notification SequenceNumber=\"{0}\" MessageType=\"{1}\" >", MessageCounter, "SMS");
sb.AppendFormat("<Message>{0}</Message>", formatedMessage);
sb.AppendFormat("<Profile>{0}</Profile>", _ProfileId);// If u have single product form mblox u need to pass -1
sb.AppendFormat("<SenderID Type=\"Shortcode\">{0}</SenderID>", XXXXXXX);
sb.Append("<ExpireDate></ExpireDate>");
sb.AppendFormat("<Operator></Operator>");
sb.AppendFormat("<Tariff></Tariff>");
sb.Append("<Subscriber>");
sb.AppendFormat("<SubscriberNumber>{0}</SubscriberNumber>", "XXXXXXX");
sb.Append("</Subscriber>");
sb.AppendFormat("<ServiceId>{0}</ServiceId>", "XXXXXXX");
sb.Append("</Notification>");
sb.Append("</NotificationList>");
sb.Append("</NotificationRequest>");
OutXml = sb.ToString();
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(string.Format("http://{0}", Host));
byte[] requestBytes = System.Text.Encoding.ASCII.GetBytes(OutXml);
req.Method = "POST";
req.ContentType = "text/xml";
req.ContentLength = requestBytes.Length;
req.Proxy = GlobalProxySelection.GetEmptyWebProxy(); ;
ServicePointManager.DefaultConnectionLimit = 100;
ServicePointManager.Expect100Continue = true;
Stream requestStream = req.GetRequestStream();
requestStream.Write(requestBytes, 0, requestBytes.Length);
requestStream.Close();
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(res.GetResponseStream(), System.Text.Encoding.Default);
string backstr = sr.ReadToEnd();
sr.Close();
res.Close();
}
catch (Exception ex)
{
CreatelogfileForMloxResponseXML(ex.Message + "--------------" + "SendMTMessageNew");
}
}
public void sendMessageUsingRead(字符串messagetext)
{
StreamReader objSreamReader=新的StreamReader(“D:/ExpressText/TestApplication/WindowsService/TestWindowsService/TestWindowsService/Numbers.txt”);
字符串MobileNumber=ObjStreamReader.ReadToEnd();
字符串[]NumberList=MobileNumber.Split(',');
Dictionary objdictionary=新字典();
for(int i=0;i{SendMTMessageNew(objdictionary[j],messagetext);});
}
}
public void sendmmessagenew(字符串mobileNumber、字符串messagetext)
{
string requestId=string.Empty;
string OutXml=string.Empty;
尝试
{
string FormattedMessage=Formatte4InfoMessage(messagetext);
StringBuilder sb=新的StringBuilder();
//int MessageCounter=GetMessageCounter();
字符串MessageCounter=mobileNumber.Substring(4);
某人加上(“”);
某人加上(“”);
sb.AppendFormat(“{0}”,“XXXXXXXX”);
sb.AppendFormat(“{0}”,“XXXXXXXX”);
sb.AppendFormat(“{0}”,“XXXXXXXX”);
某人加上(“”);
sb.AppendFormat(“,MessageCounter);
sb.AppendFormat(“,MessageCounter,SMS”);
sb.AppendFormat(“{0}”,FormattedMessage);
sb.AppendFormat(“{0}”,_ProfileId);//如果有单个产品表单mblox,则需要通过-1
sb.AppendFormat(“{0}”,XXXXXXX);
某人加上(“”);
sb.格式(“”);
sb.格式(“”);
某人加上(“”);
sb.AppendFormat(“{0}”,“XXXXXXX”);
某人加上(“”);
sb.AppendFormat(“{0}”,“XXXXXXX”);
某人加上(“”);
某人加上(“”);
某人加上(“”);
OutXml=sb.ToString();
HttpWebRequest req=(HttpWebRequest)WebRequest.Create(string.Format(“http://{0}”,Host));
byte[]requestBytes=System.Text.Encoding.ASCII.GetBytes(OutXml);
请求方法=“POST”;
req.ContentType=“text/xml”;
req.ContentLength=requestBytes.Length;
req.Proxy=GlobalProxySelection.GetEmptyWebProxy();
ServicePointManager.DefaultConnectionLimit=100;
ServicePointManager.Expect100Continue=true;
Stream requestStream=req.GetRequestStream();
Write(requestBytes,0,requestBytes.Length);
requestStream.Close();
HttpWebResponse res=(HttpWebResponse)req.GetResponse();
StreamReader sr=新的StreamReader(res.GetResponseStream(),System.Text.Encoding.Default);
字符串backstr=sr.ReadToEnd();
高级关闭();
res.Close();
}
捕获(例外情况除外)
{
CreatelogfileForMloxResponseXML(ex.Message+“--------------”+“SendMTMessageNew”);
}
}
我们无法回答这个问题。可能这只是一个配置问题,例如,代理服务器在一种情况下存在,而在另一种情况下缺失。这不是你的代码,也不是它在Windows服务中的事实。与Windows服务相比,在web表单中花费的时间更少。我想知道为什么在Windows服务中花费很长时间。我们无法回答这个问题。可能这只是一个配置问题,例如,代理服务器在一种情况下存在,而在另一种情况下缺失。这不是你的代码,也不是它在Windows服务中的事实。与Windows服务相比,在web表单中花费的时间更少。我想知道为什么在Windows服务中花费很长时间。