为什么连续多次调用Async Web Service Method只执行一次该方法

时间:2011-10-20 13:29:09

标签: .net web-services asynchronous

我有一个Web服务,我试图使用异步方法多次调用。该方法只记录调用,不会引发异常,也不会返回任何内容。

但是,只记录第一个呼叫,其余呼叫不记录。如果同步调用Web方法,或者每次都实例化Web服务代理,或者减慢调用速度,则调用会起作用。

没有防火墙,没有交通离开机器(我也尝试在另一台机器上托管服务)。

任何人都可以解释为什么只有第一个异步调用成功而其余的不成功?另外 - 完成的事件被解雇了正确的次数,这很奇怪!我联系了小提琴手,只有第一个网络服务电话离开了我的机器。

调用代码(仅运行一次Web方法):

    Dim svc As New wsLogThisService.LogThisService
    AddHandler svc.LogTestCompleted, AddressOf Completed

    For i As Integer = 1 To 100
        Dim request As New TestRequest
        request.LogLevel = LogLevelOptions.Err
        request.Counter = i.ToString

        svc.LogTestAsync(request)
    Next

调用代码(Works):

    For i As Integer = 1 To 100

        Dim svc As New wsLogThisService.LogThisService
        AddHandler svc.LogTestCompleted, AddressOf Completed

        Dim request As New TestRequest
        request.LogLevel = LogLevelOptions.Err
        request.Counter = i.ToString

        svc.LogTestAsync(request)
    Next

1 个答案:

答案 0 :(得分:0)

找到答案here - 如果每次都没有实例化服务代理,则需要包含一个状态对象。