C# .Net窗口服务和ASP.Net web窗体具有相同的代码来发送SMS

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

我正在.Net窗口服务和asp.Net web表单中编写发送SMS代码,用于向客户端发送SMS,但我在每秒向MBLOX url发送SMS时遇到问题。问题是,当我使用web表单时,它向Mblox url发送60条短信/秒,但在Windows服务中,它只发送4条短信/秒,但两者的代码相同。请给我解决方案,我该怎么办

我正在asp.net web窗体和窗口服务中使用以下代码。但是web表单需要很短的时间,而窗口服务需要很长的时间。但我想使用窗口服务

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服务中花费很长时间。