우리는 여러 클라이언트의 데이터를 수신하고 다른 WCF 서비스를 호출하는 다중 스레드 서버를 개발했습니다. 2 개 (또는 그 이상) 다른 클라이언트가 서버를 동시에 호출하고 서버가 두 개의 다른 스레드에서 원격 WCF를 동시에 호출하려고하는 경우가 많습니다. 특히 원격 WCF 서비스가 중단 된 경우 몇 가지 문제가 발생했습니다. 우리가 올바르게하고 있습니까? 이 시나리오에 가장 적합한 방법이 있습니까?WCF 다중 스레드 호출
0
A
답변
0
발생하는 문제 유형에 대해 좀 더 구체적으로 설명해야하지만, 멱등 원과 상태 저장 서비스에 대해 읽어 볼 수는 있습니다.
2
대부분의 경우 가장 좋은 방법은 이것이다 :
이- 클라이언트가 클라이언트의 각 요청 자체, 자연 그대로의 서버 클래스 인스턴스를 가져옵니다
- 는 "통화 당"패턴으로 WCF 서비스를 호출하는 요청을 처리하고 처리가 끝나면 폐기 처리합니다.
- 따라서 서버 클래스는 단일 스레드, 재진입 성이 아니며 모든 멀티 태스킹 문제를 처리 할 필요가 없습니다.
- 서버 클래스는 상태가없고 보유하지 않습니다. 모든 서버 리소스 또는 무엇이든에
- "상태"또는 호출간에 유지되어야하는 데이터는 적절한 위치에 저장됩니다. 데이터베이스
이것은 가장 쉬운 설정이며 최소한 80 % 이상을 선택하는 것이 가장 좋습니다.
다양한 우수 옵션에 대한 배경 지식이있는 훌륭한 MSDN Magazine 기사 Discover Mighty Instance Management Techniques For Developing WCF Apps을 확인하십시오.
+1
내가 할 수있는 것보다 훨씬 간결하게 말했습니다. 이 시나리오의 서비스 속성이'InsanceContextMode.PerCall'이라고 덧붙일 것이다. 싱글 톤 또는 재진입 서비스를 사용하는 경우 모든 종류의 문제가 발생할 수 있습니다. – roufamatic
관련 문제
- 1. OpenCV 다중 스레드 호출
- 2. 다중 스레드 WMI 호출 -이를 어떻게 처리해야합니까?
- 3. 다중 스레드 WebRequest 호출 및 경합
- 4. 다중 포트를위한 다중 스레드?
- 5. 다중 스레드 #
- 6. WPF 배경 스레드 호출
- 7. 제한된 다중 스레드 작업
- 8. 다중 스레드 다중 클라이언트 프로그래밍
- 9. .NET 다중 스레드 싱크ronronization
- 10. 다중 스레드 JDBC
- 11. JDBC 연결의 다중 스레드
- 12. 다중 스레드 NSDocument 종료
- 13. Eclipse에서 다중 스레드 디버그
- 14. VB에서 다중 스레드 ObservableCollection
- 15. Java에서 다중 스레드 구현
- 16. 다중 스레드 및 GDB
- 17. 다중 스레드 오류
- 18. 다중 스레드 데이터베이스 쿼리
- 19. 다중 스레드 및 메모리
- 20. 다중 스레드 힙 관리
- 21. 다중 스레드 처리 문제
- 22. 다중 스레드 문제가있는 FMDB
- 23. 간단한 다중 스레드 질문
- 24. 다중 스레드 정보
- 25. ScheduledExecutorService 병렬 다중 스레드
- 26. 루비 다중 배경 스레드
- 27. 자바에서 다중 스레드 처리
- 28. Log4j의 다중 스레드
- 29. 다중 스레드 프로그램에서 분기
- 30. 다중 스레드 딥 복사
문제를 더 자세히 설명해 주실 수 있습니까? 이것은 이상하거나 부당한 패턴으로 보이지 않습니다. – Steve