문제

요청의 "버스트"를받는 ASMX 웹 서비스를 디버깅하고 있습니다. 즉, 웹 서비스는 약 1-2 초 안에 100 개의 비동기 요청을받을 수 있습니다. 각 요청은 처리하는 데 약 1 초가 걸리는 것 같습니다 (이것은 예상 되며이 성능은 괜찮습니다). 그러나 중요한 것은 각 요청이 순차적으로 처리되며 병렬 처리가 발생하지 않는다는 것입니다. 웹 서비스가 호출 한 외부 구성 요소로 인해 동시 요청 처리를 원하지 않습니다. 웹 서비스가 각 응답 만 순차적으로 처리하도록 강요 할 수있는 방법이 있습니까?

Machine.config에서 maxConnection 속성을 보았지만 이것은 들어오는 연결을 스로틀로 만들고 싶은 아웃 바운드 연결에만 작동하는 것 같습니다.

WCF 로의 리팩토링은이 시점에서 옵션이 아닙니다.

우리는 Win2003의 IIS6입니다.

도움이 되었습니까?

해결책

아마도 당신은 내부적으로 요청을 대기하고 하나씩 처리해야합니까?

클라이언트가 결과를 위해 설문 조사를하게 될 수 있지만 (필요한 경우에도 필요한 경우), 원하는 순차 파이프 라인을 얻을 수 있습니다 ...

다른 팁

IIS7에서는 웹 사이트에 허용되는 연결 제한을 설정할 수 있습니다. IIS7을 사용할 수 있습니까?

과거에 한 일은 내가 사용하고있는 외부 리소스에 대한 액세스에 대한 잠금 진술을 간단히 말하는 것입니다. 제 경우에는 스레드 안전이라고 주장하는 관리되지 않은 코드의 조각 이었지만 실제로 한 번에 둘 이상의 스레드에서 액세스하면 C 런타임 라이브러리 힙을 버릴 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top