다음을 통해 공유


비동기 XML Web services 메서드

스레드를 차단하는 장기 실행 메서드를 호출하는 웹 서비스 메서드의 성능을 향상시키려면 그러한 메서드를 비동기 웹 서비스 메서드로 공개하는 것이 좋습니다. 스레드에서 비동기 웹 서비스 메서드를 구현하면 스레드 풀로 반환될 때 다른 코드를 실행할 수 있습니다. 그러면 스레드 풀에서 스레드를 제한된 수보다 하나 더 실행할 수 있으므로 시스템의 전반적인 성능과 확장성이 향상됩니다.

웹 서비스 메서드를 비동기 액세스를 위한 메서드 쌍으로 변환하는 방법에 대한 단계별 설명은 방법: 비동기 웹 서비스 메서드 만들기를 참조하십시오. 다른 코드 예제를 보려면 방법: 웹 서비스 메서드를 사용하여 비동기 호출 연결을 참조하십시오.

일반적으로 I/O 작업을 수행하는 메서드를 호출하는 웹 서비스 메서드는 비동기 구현에 적합합니다. 이러한 메서드의 예로 다른 웹 서비스와 통신하고, 원격 데이터베이스에 액세스하며, 네트워크 I/O를 수행하고, 대용량 파일에서 읽고 쓰는 메서드가 있습니다. 이러한 모든 메서드는 하드웨어에서 작업을 실행하는 데 많은 시간을 소요하므로 웹 서비스 메서드를 실행하기 위해 스레드가 차단된 상태로 유지됩니다. 웹 서비스 메서드를 비동기적으로 구현할 경우 다른 코드를 실행하기 위해 해당 스레드의 잠금 상태가 해제될 수 있습니다.

웹 서비스 메서드가 비동기적으로 구현되는지 여부에 상관없이 클라이언트는 웹 서비스 메서드와 비동기적으로 통신할 수 있습니다. 비동기 통신은 WSDL.EXE(웹 서비스 기술 언어) 도구를 통해 생성되는 프록시 클래스 내의 .NET 클라이언트에 공개되며, 이는 웹 서비스 메서드가 동기적으로 구현되는 경우에도 마찬가지입니다. 프록시 클래스에는 각 웹 서비스 메서드와 비동기적으로 통신하기 위해 Begin 메서드와 End 메서드가 포함되어 있습니다. 따라서 웹 서비스 메서드를 비동기적으로 구현할지 아니면 동기적으로 구현할지를 결정할 때 성능을 고려해야 합니다.

Note참고:

비동기 웹 서비스 메서드의 구현은 웹 서비스를 호스팅하는 서버와 클라이언트 간의 HTTP 연결에는 영향을 주지 않습니다. HTTP 연결은 닫히거나 풀링되지 않습니다.

참고 항목

작업

방법: 비동기 웹 서비스 메서드 만들기
방법: 웹 서비스 메서드를 사용하여 비동기 호출 연결

개념

XML Web services와 비동기적으로 통신

기타 리소스

ASP.NET을 사용하는 XML Web services

Footer image

Copyright © 2007 by Microsoft Corporation. All rights reserved.