Question

Iam se OutOfMemoryException tout en faisant appel à la méthode à distance.

"RemoteEntity.SetLocalStore (jeu de données);"

valeur transmise est jeu de données.

Remarque Taille du jeu de données est 38MB

envoirment c # VS2008

Merci

Code:

private void backgroundSync_DoWork(object sender, DoWorkEventArgs e)
        {            
            backgroundSync.ReportProgress(10, "Fetching data for sync ...");
            EngagementSet _remoteSet = HKMPClient.Instance.RemoteEntity.GetLocalStore();



            //Update to release memory.
            HKMPClient.Instance.RemoteEntity.SetLocalStore(null);
            //dispose RemoteEntity
            HKMPClient.Instance.DisconnectAndDispose();

            HKMP.EngagementWorks.Windows.BLL.Engagements.Engagement.MergeEntitiesInLimitedConnecitivity(_remoteSet,EngagementID);            
            backgroundSync.ReportProgress(10, "Synchronizing Engagement ...");
            DialogSync _dlgSync = new DialogSync(this.EngagementID, _remoteSet);
            _dlgSync.ServiceRequestStarted += new DialogSync.OnServiceRequestStarted(_dlgSync_ServiceRequestStarted);
            _dlgSync.ServiceRequestCompleted += new DialogSync.OnServiceRequestCompleted(_dlgSync_ServiceRequestCompleted);
            if (_dlgSync.IsShown())
            {
                _dlgSync.StartPosition = FormStartPosition.CenterParent;
                _dlgSync.WindowState = FormWindowState.Normal;
                _dlgSync.ShowDialog();
            }
            //Disposed to release object.
            _dlgSync.Dispose();
            _dlgSync = null;


            // connect again                
            HKMPClient.Instance.Connect(e.Argument.ToString());

            _remoteSet.RemotingFormat = SerializationFormat.Binary;

            HKMPClient.Instance.RemoteEntity.SetLocalStore(_remoteSet);

        }
Était-ce utile?

La solution

Je pense que vous connaissez la réponse, 38MB est trop grand pour le faire sur un appel à distance. Qu'est-ce qui aidera à diagnostiquer plus serait de montrer un exemple complet par simplfying votre problème à seulement deux fonctions en cours d'exécution au niveau local.

Cela permettra de détecter si elle est la taille de l'ensemble de données ou une contrainte de taille dans l'interface distante / configuration du réseau.

De plus ayant un échantillon de travail permettrait à quelqu'un d'autre de reproduire le problème et voir les informations de type (par exemple, nous ne pouvons pas voir ce type d'objet est de lancer l'exception et ne peut pas rechercher des contraintes MSDN). Je suis sûr que cette personne serait en mesure de fournir une réponse définitive.

Le fait de réduire votre code à un échantillon en lui-même vous permettra probablement de trouver la cause.

Ryan

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top