2009-11-02 15 views
0

Je récupère OutOfMemoryException lors d'un appel de méthode à distance.OutOfMemoryException lors d'un appel de méthode à distance

"RemoteEntity.SetLocalStore (DATASET);"

La valeur transmise est un 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); 

     } 
+2

Je reçois 'NullReferenceException' dans un code que j'ai ici, pouvez-vous me aider? – jason

+0

Par souci d'intérêt, comment les threads client avez-vous en cours d'exécution? – leppie

Répondre

1

Je pense que vous connaissez la réponse, 38MB est trop grand pour faire plus un appel à distance. Ce qui aidera à le diagnostiquer plus loin serait de montrer un exemple complet en simplifiant votre problème à seulement deux fonctions fonctionnant localement.

Cela aidera à détecter s'il s'agit de la taille de l'ensemble de données ou d'une contrainte de taille dans la configuration de l'interface/réseau distant. De plus, avoir un exemple de travail permettrait à quelqu'un d'autre de répliquer le problème et de voir les informations de type (par exemple, nous ne pouvons pas voir quel type d'objet lève l'exception et ne peut rechercher aucune contrainte dans MSDN). Je suis sûr que quelqu'un serait en mesure de fournir une réponse définitive.

Le fait de réduire votre code à un échantillon vous permettra probablement de trouver la cause.

Ryan

+0

merci pour le bloc reply.code est attaché – Buzz