작업의 일부로 활용해야하는 ASMX 웹 서비스가 있습니다. ASPX 페이지를 통해이 서비스를 호출하여 제 3 자 시스템에서 새 항목을 만듭니다. 나는 그 서비스에 대한 기본 코드에 접근 할 수 없다. 단순히 다른 시스템과 통신 할 수있게 해준다.C# ASMX 웹 서비스 호출
나는 서비스를 올바르게 부르고 있는지 알아내는 데 어려움을 겪고 있으며, 누군가 조언을 해줄 수 있는지 궁금합니다.
나는 ASMX 페이지를 설치했고 이것이 나에게 BeginProcessOperations 메소드라고 부르는 'ConfirmConnector'클래스를 주었다. 돌아와서 결과를 파싱 할 때까지 기다리고 싶습니다. 결과는 내가 XML을 통해 처리 한 후 내가 수행 한 데이터를 가져와야합니다.
문제는이 프로세스가 단지 나를 죽이는 것입니다. 즉, 'EndProcessOperations'메소드를 호출하면 아무 일도 일어나지 않습니다. 나는 오류, 아무것도 얻을 해달라고 - 내 코드 그냥 죽으면 메소드가 리턴 '
내 호출 코드는 다음과 같습니다
private void sendConfirmRequest(XmlManipulator requestXML)
{
file.WriteLine("Sending CONFIRM Request!");
AsyncCallback callBack = new AsyncCallback(processConfirmXML); // assign the callback method for this call
IAsyncResult r = conn.BeginProcessOperations(requestXML, callBack, AsyncState);
System.Threading.WaitHandle[] waitHandle = { r.AsyncWaitHandle }; // set up a wait handle so that the process doesnt automatically return to the ASPX page
System.Threading.WaitHandle.WaitAll(waitHandle, -1);
}
내 처리기 코드는 다음과 같습니다
/*
* Process the response XML from the CONFIRM Connector
*/
private static void processConfirmXML(IAsyncResult result)
{
try
{
file.WriteLine("Received Response from CONFIRM!");
if(result == null)
{
file.WriteLine("RESPONSE is null!!");
}
if(conn == null)
{
file.WriteLine("conn is null!!");
}
file.WriteLine("Is Completed : " + result.IsCompleted);
XmlNode root = conn.EndProcessOperations(result);
file.WriteLine("got return XML");
//writeXMLToFile("C:/response.xml",root.InnerXml);
file.WriteLine(root.InnerXml);
사람이 있다면 조언을 할 수 있습니까 이 코드를 올바른 방식으로 처리하고 누구나 내 코드가 처리기에서이 줄 뒤에 내 코드가 무작위로 폭탄을 떨어 뜨리는 이유를 알 수 있습니다.
XmlNode root = conn.EndProcessOperations(result);
도움을 주셔서 감사합니다. Paul
에 오신 것을 환영합니다! 종종 "감사"등이나 이름을 포함 할 필요가 없습니다. 우리는 당신이 도움에 대해 감사하다는 것을 알고 암묵적이며 당신의 이름은 이미 질문의 왼쪽 하단에 있습니다. :) – Patrick
죄송합니다 - 죄송합니다. 잊어 버렸습니다. 나는 약 5 번 질문을 다시 말하고 그 위에 복사해야만한다. –
미리 답변 해 주신 모든 분께 –