Как использовать концепцию асинхронной задачи в веб-службе для обслуживания каждого запроса.
Я создал один веб-сервис в C# , который принимает 2 параметра, делает одну строку XML и отправляет HTTP-запрос на один сервер и отвечает ответом, полученным от сервера. Теперь мой вопрос заключается в том, как я могу использовать асинхронную задачу для обработки нескольких запросов к моему веб-сервису, чтобы все мои запросчики получили ответ. ниже приведен мой код для httprequest.
public class Service1 : System.Web.Services.WebService { [WebMethod] public string postXMLData(String Session, String Token) { string destinationUrl = "https://data.getdata.com"; String requestXml= "<ENVELOPE> <HEADER> <VERSION>1</VERSION> <REQVERSION>1</REQVERSION> <TALLYREQUEST>EXPORT</TALLYREQUEST> <TYPE>DATA</TYPE> <ID>TPGETCOMPANIES</ID><SESSIONID>" + Session + "</SESSIONID> <TOKEN>" + Token + "</TOKEN> </HEADER><BODY> <DESC> <STATICVARIABLES><SVINCLUDE>CONNECTED</SVINCLUDE></STATICVARIABLES></DESC></BODY> </ENVELOPE>"; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(destinationUrl); byte[] bytes; bytes = System.Text.Encoding.ASCII.GetBytes(requestXml); request.ContentType = "text/xml; encoding='utf-8'"; request.ContentLength = bytes.Length; request.Method = "POST"; request.Headers.Add("ID","TPGETCOMPANIES"); request.Headers.Add("SOURCE","EA"); request.Headers.Add("TARGET","TNS"); //request.Headers.Add("CONTENT-TYPE","text/xml;charset=utf-8"); request.Headers.Add("Accept-Encoding","identity"); Stream requestStream = request.GetRequestStream(); requestStream.Write(bytes, 0, bytes.Length); requestStream.Close(); HttpWebResponse response; response = (HttpWebResponse)request.GetResponse(); if (response.StatusCode == HttpStatusCode.OK) { Stream responseStream = response.GetResponseStream(); string responseStr = new StreamReader(responseStream).ReadToEnd().Trim(); return responseStr; //responseStr.ToString(); } else { return "Problem in getting resp"; } return null; } }
Что я уже пробовал:
Я пытался разместить этот простой сервис, но он не может обслуживать несколько запросов одновременно.