2012-09-03 2 views
0

"서비스 참조 추가"를 통해 VS2010에서 생성 된 클라이언트를 사용하여 SOAP 서비스를 테스트하고 있습니다.Visual Studio에서 생성 된 SOAP 클라이언트 요청을 단일 스레드로 제한

테스트를 병렬로 실행 (10 스레드)했으며 테스트중인 시스템에서 일부 DB 잠금 문제가 발생했습니다. 그러나 이것은 곧바로 해결되지 않을 것이며이 문제로 인해 기능 테스트가 실패하지 않기를 바랍니다.

결과적으로 테스트 스레드를 1로 줄였습니다. 예상대로 잠금 문제는 보이지 않지만 테스트 스위트가 상당히 느려졌습니다. 따라서 클라이언트 구성을 사용하여 하나의 요청 만 동시에 수행하도록 클라이언트를 제한 할 수 있는지 궁금합니다.

+0

나는 당신이 빨리 아무것도 할 것이라고 생각하는 방법을 확실 해요? –

+0

요청 큐를 유지하고 순차적으로 처리 할 수 ​​있습니까? –

+0

시험은 어떻게하고 있습니까? –

답변

0

해당 호출 코드로 제한해야하는 비누 클라이언트가 아닙니다. Soap 호출이 수행되어 스레드가 만들어지는 스레드가 생성됩니다. 여러 스레드에 문제가있는 경우 코드에 스레드가 여러 개 있거나 사용자가 속한 스레드를 이해하지 않고 추가 서비스 호출을하거나 콜백에서 무언가를 업데이트하려고 시도하고 있기 때문입니다.

문제에 따라 다름

  1. 응용 프로그램에서 멀티 스레딩을 제거하고 콜백을 사용하지 않고 추가 스레드를 실행하지 마십시오.

  2. 또는 이상적 그래서 당신은 그것은 좋은 것입니다 기본 잠금 문제를

http://msdn.microsoft.com/en-us/library/ms591206.aspx

Me.Dispatcher.BeginInvoke(Sub() 
            ' This will be executed on the UI Thread 
           End Sub) 

를 해결 당신이있는 스레드 이해, 당신이 다시 때 적절한 UI에 파견 확인 (그리고 매우 유용합니다) 질문에 ..... 코드를 가지고 있습니다. 어떤 버전의 .net 사용하고 어떤 응용 프로그램 (Asp.net, WinForms?) 작성된 또한 일부 컨텍스트를 얻을 도움이 될 것입니다.

NB : 샘플 vb.net에서 코드를하지만 당신은 아이디어를 얻을; P

관련 문제