Асинхронный вызов на soap webservice
Добрый день люди
У меня возникла проблема, когда мне нужно было сделать асинхронный вызов метода в веб-службе, на которую ссылаются. Я понятия не имею, как это сделать. Не мог бы кто-нибудь просто указать мне правильное направление?
Вот методы на веб-сервисе
public MADAT_Output MADAT(MADAT_Input MADATRequest) { object[] results = this.Invoke("MADAT", new object[] { MADATRequest}); return ((MADAT_Output)(results[0])); } /// <remarks/> public void MADATAsync(MADAT_Input MADATRequest) { this.MADATAsync(MADATRequest, null); } /// <remarks/> public void MADATAsync(MADAT_Input MADATRequest, object userState) { if ((this.MADATOperationCompleted == null)) { this.MADATOperationCompleted = new System.Threading.SendOrPostCallback(this.OnMADATOperationCompleted); } this.InvokeAsync("MADAT", new object[] { MADATRequest}, this.MADATOperationCompleted, userState); } private void OnMADATOperationCompleted(object arg) { if ((this.MADATCompleted != null)) { System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); this.MADATCompleted(this, new MADATCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); } }
и это мой метод, который я пытаюсь вызвать веб-сервис
public LoginStatus getMADAT_Output(MADAT_Input input, out MAINP_Output output) { output = null; MADAT_Output outputTemp; try { outputTemp = lsWS.MADATAsync(input); } catch (WebException e) { #if WIN Console.WriteLine("Network Exception:\n Status=" + e.Status + "\n Message=" + e.Message); //throw e; #endif if (e.Status == WebExceptionStatus.Timeout) { //if (e.Message == "The operation has timed out") ; //if (e.Message == "The request has timed out") ; return LoginStatus.Offline; } else if (e.Status == WebExceptionStatus.ConnectFailure) { //if (e.Message == "Unable to connect to the remote server") ; return LoginStatus.Offline; } else if (e.Status == WebExceptionStatus.ProtocolError) { if (e.Message == "The request failed with HTTP status 404: Not Found.") { return LoginStatus.ServerError; } } //return "Connection failed\nPlease try again later"; return LoginStatus.NetworkError; }
очень ценю
Что я уже пробовал:
Я пытался использовать await, но я продолжаю получать ошибки