异步 Soap 调用

Jiale Xue - MSFT 40,746 信誉分 Microsoft 供应商
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 窗体
Windows 窗体
一组用于开发图形用户界面的 .NET Framework 托管库。
115 个问题
VB
VB
Microsoft 开发的一种面向对象的编程语言,其在 .NET Framework 上实现。 以前称为 Visual Basic .NET。
78 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Hui Liu-MSFT 46,951 信誉分 Microsoft 供应商
    2024-03-18T08:39:32.72+00:00

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

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

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

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

0 个其他答案

排序依据: 非常有帮助