2011-02-22 8 views
1

루프를 사용하여 WCF 서비스를 사용하여 내 DB에 많은 사용자를 생성하려고합니다. 스크립트와 웹 서비스가 로컬로 실행 중입니다 (Cassini).루프에서 호출 할 때 WCF가 응답하지 않습니다.

   FormWCFClient formClient = new srForm.FormWCFClient(); 
       User user; 
       int nbUser = 20000; 
       for (int i = 0; i < nbUser; ++i) 
       { 
        user = new User(); 
        user.Email = String.Format("{0}@example.com", i.ToString()); 

        formClient.AddUser(user); // Add the user in DB 
       } 

       formClient.Close(); 

문제는 3300 호출 주위 EndpointNotFoundException는 다음의 InnerException으로 시작된다는 점이다 : "원격 서버에 연결할 수 없습니다."
오류없이 프로세스를 계속 진행하려면 약 20 초 정도 기다려야합니다 (3300 호출의 다음 범위까지).

코드 문제입니까, 서버 제한입니까?

+0

'IEnumerable '을 허용하고 한 번에 3000 개의 배치로 서비스를 호출하는 AddUsers() 메소드를 추가하면 어떨까요? 같은 문제가 있습니까? – Nate

답변

0

사용자 목록을 매개 변수로 사용하는 새 작업을 서비스에 만들 수 있습니다. 그런 다음 기존 작업을 한 명의 사용자와 20000 번 호출하는 대신 목록으로 한 번 호출합니다. 이는 네트워크의로드를 줄이고 트랜잭션 사용을 쉽게합니다.

가능하지 않은 경우 WCF tracing을 활성화하고 통화가 실패 할 때 수행되는 작업을 확인하십시오.

+0

그건 나쁜 생각이 아니지만이 솔루션의 또 다른 문제점 인 "개체 그래프에서 직렬화 또는 비 직렬화 될 수있는 항목의 최대 수는 ..."입니다. 나는 최대를 올릴 수 있다는 것을 알고 있지만 그것은 우아한 해결책이 아닙니다. 또한 WCF 추적은 서비스를 여러 번 호출 할 때 오류를보고하지 않습니다. – Spilarix

관련 문제