Ouvrir/Fermer Le Service Web

J'ai un Service. Nous sommes l'envoi des enregistrements de ce service. Cependant, lorsque nous envoyer trop de dossiers (plus de 3.000) le temps de Service. Mon idée était de casser les dossiers et ouvrir le Service, puis fermez tous les 1000 enregistrements.

Cependant, j'obtiens une erreur:

{"Cannot access a disposed object.\r\nObject name: 'System.ServiceModel.Channels.ServiceChannel'."}

Voici mon code:

ServiceClient client = new ServiceClient();
foreach (Record rc in creditTransactionList)
{
    //if we are not on the last one...
    if (currentTransCount < totalTransCount)
    {
        //Current batch count is less than 1,000
        if (currentBatchCount <= amountPerBatch)
        {
            currentBatchCount++;
            if (rc != null)
                client.RecordInsert(rc);
        }
        //Current batch count is 1,000
        if (currentBatchCount == amountPerBatch)
        {
            currentBatchCount = 0;
            client.Close();
            client.Open();
        }
        //Increment Total Counter by 1
        currentTransCount++;
    }
    else
    {
        currentBatchCount++;
        if (rc != null)
            client.RecordInsert(rc);
        client.Close();
    }
}

amountPerBatch = 1000;
totalTransCount = ACHTransactionList.Count();
currentBatchCount = 0;
currentTransCount = 1;

foreach (Record rc in ACHTransactionList)
{
    //if we are not on the last one...
    if (currentTransCount < totalTransCount)
    {
        //Current batch count is less than 1,000
        if (currentBatchCount <= amountPerBatch)
        {
            currentBatchCount++;
            if (rc != null)
                client.RecordInsert(rc);
        }
        //Current batch count is 1,000
        if (currentBatchCount == amountPerBatch)
        {
            currentBatchCount = 0;
            client.Close();
            client.Open();
        }
        //Increment Total Counter by 1
        currentTransCount++;
    }
    else
    {
        currentBatchCount++;
        if (rc != null)
            client.RecordInsert(rc);
        client.Close();
    }
}

J'ai créé un exemple de l'application de la console qui fait cela, mais quand j'ai incorporé dans le projet avec le service, j'obtiens une erreur. Pouvez-vous svp m'aider à comprendre ce que je fais de mal. Il a à mon client.ouvrir et le client.à proximité, est ma conjecture. Toute aide est grandement appréciée!!

Je soupçonne votre service client, c'est un peu un one shot chose, essayez de créer un nouveau pour chaque lot.

OriginalL'auteur Turp | 2011-11-16