WCF를 사용하여 작성한 파일 전송 서비스가 있습니다. 클라이언트가 보낸 파일을 수신합니다. 클라이언트 inturn은 FileStream + MessageContract를 사용하여 파일을 보냅니다. 나는 클라이언트 자체에 여러 스레드를 사용하려고 다음과 같은 속성 WCF + 싱글 톤 + 파일 전송 + 멀티 스레딩
[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single,
ConcurrencyMode = ConcurrencyMode.Multiple)]
를 사용하여 싱글로 WCF 파일 전송 서비스를 만들었습니다. 각 스레드는 channelfactory + proxy.CreateChannel의 인스턴스를 만들고 하나의 고유 한 파일을 통해 서비스에 전송합니다. 나는 한 번에 하나의 파일 만 전송되거나 클라이언트 측에서 전송되는 것을 허용하는 서비스 측면의 잠금 장치가 없습니다. 이 코드는 상태 지속성이없는 통과 코드의 일종입니다.
제가 직면 한 문제는 여러 파일을 보내려는 여러 스레드가 보이지 않기 때문입니다. 여러 스레드를 사용하여 여러 파일을 전송하려고 할 때마다 서비스 종류가 동일한 인스턴스에서 여러 파일을 허용하지 않습니다. 이로 인해 파일이 병렬로 전송되는 대신 순차적으로 전송됩니다. 나는 클라이언트 측에서 파일이 보내 졌다고 느낍니다. 그러나 서비스 측에서 그 종류는 방금 들었습니다.
ServiceThrottling 특성을 사용해 보았지만 여전히 차이점을 발견하지 못했습니다. 내가하고있는 일이 잘못되었거나 이런 종류의 접근법이 유효하지 않습니까?
하나의 클라이언트는 하나의 채널에서만 하나의 파일을 보낼 수 있습니까? 많은 스레드가 동일한 서비스에 많은 파일을 보낼 수 있습니까? 누군가 나를 도울 수 있습니까?
감사 하기 Sandeep
제대로 작동하도록 만들었으므로 서비스의 진입 점에 정확히 잠금 개체가 있습니다. 그러나 나는 또 하나의 문제에 직면 해있다. 한 지점에서 두 파일 만 전송됩니다. 추가해야하는 다른 구성이 있습니까? – Sandepku