异步 Soap 调用

匿名
2024-03-18T07:36:59.78+00:00

你好

我正在尝试异步调用 SOAP Web 服务。我已经在我的代码中添加了一个处理程序,但在 SOAP 进程完成后永远不会调用它。下面是我的代码。

Web 服务已加载并执行,没有问题。完成后,不会调用我的处理程序。我是否在正确的位置添加了处理程序?我是否正确调用了处理程序?

我一直在为这个问题而苦苦挣扎。所提供的任何帮助将不胜感激。

问候

马特·佩斯利

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"
                Case "Button4"
                    strSuccess = KycCustomerCheck()
                    If strSuccess = "Success" Then
                        txtSessionId.Text = "Processing Request"
                    Else
                        txtSessionId.Text = strSuccess
                    End If
            End Select

        Catch ex As Exception
            txtSessionId.Text = "ERROR: " & ex.Message

        End Try

    End Sub

    Private Function KycCustomerCheck() As String

        If Not handlerAttached Then
            AddHandler My.WebServices.CustomerDueDilligenceService.CustomerDueDilligenceCompleted,
                        AddressOf Me.getCDDresults
            handlerAttached = True
        End If

        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)
            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)

        txtSessionId.Text = "Completed"

    End Sub

End Class

Note:此问题总结整理于: Asynchronous Soap Invocation

开发人员技术 | Windows 窗体
开发人员技术 | VB
0 个注释 无注释
{count} 票

问题作者接受的答案
  1. Hui Liu-MSFT 48,706 信誉分 Microsoft 外部员工
    2024-03-18T08:39:32.72+00:00

    正如本文档所说,“添加一个方法,以便在必要时将事件处理程序添加到getTempCompleted事件中,并在步骤四中调用getTempAsync方法”。 因此,您需要在调用“CustomerDueDilligenceAsync”方法之前附加事件处理程序。

    希望这对你有所帮助。 如果回复有帮助,请单击“接受答案”并投赞成票。

    注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

    1 个人认为此答案很有帮助。
    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

提问者可以将答案标记为“已接受”,版主可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。