Как выставить счет на SOAP-сервис асинхронно, используя обработчики с помощью VB.NET
Привет,
Я пытаюсь вызвать веб-службы асинхронно из VB.Сетевое настольное приложение. Мой код включен.
При нажатии на кнопку Я вызываю функцию KycCustomerCheck(), которая захватывает необходимые параметры из моей формы и вызывает метод службы асинхронно. После вызова метода я добавляю обработчик событий, который вызывает функцию getCDDresults, которая извлекает результаты метода и записывает их в DataGridView в моей форме.
Когда я тестирую приложение, веб-служба успешно вызывается и выполняется. Однако мой обработчик событий не выполняется. Я предполагаю, что мой обработчик событий не был реализован правильно. Если кто-то может помочь мне решить эту проблему, я буду очень благодарен. Заранее спасибо.
Искренне,
Мэтью Пейсли
matt.paisley57@gmail.com
Что я уже пробовал:
Public Class DueDilligence Public handlerAttached As Boolean = False Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button4.Click Dim success As Boolean, strSuccess As String Dim b As Button = DirectCast(sender, Button) Try Select Case b.Name Case "Button1" '**** this logic works Case "Button4" strSuccess = If strSuccess = "Success" Then txtSessionId.Text = "Processing Request" End If End Select Catch ex As Exception txtSessionId.Text = "ERROR: " & ex.Message End Try End Sub Private Function KycCustomerCheck() As String Dim KYC As New CustomerDueDilligence.CustomerDueDilligenceService() Dim BPCredentialName As String = My.Settings.BPCredentialName Dim BPResourceName As String = My.Settings.BPResourceName Try KYC.Url = My.Settings.HostName & My.Settings.PortAssignment & "/ws/CustomerDueDilligence" KYC.Credentials = New System.Net.NetworkCredential(My.Settings.uid, My.Settings.pw) KYC.CustomerDueDilligenceAsync(txtFirstName.Text, txtLastName.Text, txtFirstName.Text & " " & txtLastName.Text, txtStreet.Text, txtCity.Text, txtState.Text, txtZipCode.Text) If Not handlerAttached Then AddHandler My.WebServices.CustomerDueDilligenceService.CustomerDueDilligenceCompleted, AddressOf Me.getCDDresults handlerAttached = True End If Return "Success" Catch ex As Exception Return "Exception - " & ex.Message End Try End Function Private Sub getCDDresults(ByVal sender As Object, ByVal results As CustomerDueDilligence.CustomerDueDilligenceCompletedEventArgs) Dim row As String() = New String() {"Name", txtFirstName.Text & " " & txtLastName.Text} DataGridView1.Rows.Add(row) row = New String() {"Street", txtStreet.Text} DataGridView1.Rows.Add(row) row = New String() {"City", txtCity.Text} DataGridView1.Rows.Add(row) row = New String() {"State", txtState.Text} DataGridView1.Rows.Add(row) row = New String() {"Zip", results.Zip} DataGridView1.Rows.Add(row) row = New String() {"RealAddress", results.RealAddress} DataGridView1.Rows.Add(row) row = New String() {"CreditScore", results.CreditScore} DataGridView1.Rows.Add(row) row = New String() {"OFAC", results.OFAC} DataGridView1.Rows.Add(row) row = New String() {"DPL", results.DPL} DataGridView1.Rows.Add(row) row = New String() {"EUFSL", results.EUFSL} DataGridView1.Rows.Add(row) row = New String() {"INTERPOL", results.INTERPOL} DataGridView1.Rows.Add(row) row = New String() {"Status", results.Status} DataGridView1.Rows.Add(row) End Sub End Class