2009-11-02 7 views
0

Iam get OutOfMemoryException при вызове удаленного метода.OutOfMemoryException во время удаленного вызова метода

"RemoteEntity.SetLocalStore (DATASET);"

прошлое значение - это набор данных.

Примечание Размер набора данных 38MB

Envoirment C# VS2008

Благодаря

Код:

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

Я получаю 'NullReferenceException' в какой-то код, который у меня есть здесь, вы можете мне помочь? – jason

+0

Для интереса, как работают потоки клиентов? – leppie

ответ

1

Я думаю, вы знаете ответ, 38MB является слишком большим, чтобы сделать более удаленный вызов. То, что поможет диагностировать его дальше, было бы показать полный пример, упростив вашу проблему до двух функций, выполняемых локально.

Это поможет определить, является ли это размер набора данных или ограничение размера в конфигурации удаленного интерфейса/сети.

Кроме того, рабочий образец может позволить кому-то еще воспроизвести проблему и просмотреть информацию о типе (например, мы не можем видеть, какой тип объекта бросает исключение и не может найти какие-либо ограничения в MSDN). Я уверен, что с этим кто-то сможет дать окончательный ответ.

Акт сокращения вашего кода до образца сам по себе, вероятно, позволит вам найти причину.

Райан

+0

спасибо за блок reply.code – Buzz

Смежные вопросы