2011-10-20 2 views
1

비동기 메서드를 사용하여 여러 번 호출하려고하는 웹 서비스가 있습니다. 메서드는 단순히 호출을 기록하고 예외는 발생하지 않으며 아무 것도 반환하지 않습니다.비동기 웹 서비스 메서드를 여러 번 호출하면 메서드가 한 번만 계속 실행됩니다.

그러나 첫 번째 호출 만 기록되고 나머지 호출은 기록되지 않습니다. 웹 메서드를 동 기적으로 호출하거나 이전에 매번 웹 서비스 프록시를 인스턴스화하거나 호출 속도를 낮추면 호출이 작동합니다.

방화벽이 없기 때문에 트래픽이 컴퓨터를 떠나지 않습니다 (다른 컴퓨터에서 서비스를 호스팅하려고 시도했습니다).

왜 첫 번째 비동기 호출 만 성공하고 나머지는 성공하지 못하는지 설명 할 수 있습니까? 또한 완료된 이벤트가 정확한 횟수만큼 발생합니다. 이는 매우 이상합니다! 나는 바이올린을 집어 넣었고 첫 번째 웹 서비스 호출 만 내 컴퓨터를 떠난다. 코드를 호출

는 (한 번만 웹 메소드를 실행) :

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 

코드 (작품)을 호출 :

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 

답변

0

대답 here 발견 - 당신이 그런가 경우는 상태 객체를 포함 할 필요가 매번 서비스 프록시 인스턴스화.

관련 문제