Domanda

Iam ottenere OutOfMemoryException mentre facendo chiamata di metodo remoto.

"RemoteEntity.SetLocalStore (DATASET);"

valore passato è insieme di dati.

Nota Dimensioni del set di dati è 38MB

envoirment c # VS2008

Grazie

Codice:

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);

        }
È stato utile?

Soluzione

Credo che si conosce la risposta, 38MB è troppo grande per fare più di una chiamata remota. Che contribuirà a diagnosticare ulteriormente sarebbe quello di mostrare un esempio completo da simplfying il problema per appena due funzioni in esecuzione a livello locale.

Ciò contribuirà a individuare se è la dimensione del set di dati o un vincolo formato nella configurazione dell'interfaccia / rete remota.

Inoltre avere un campione di lavoro permetterebbe a qualcun altro di replicare il problema e vedere le informazioni sul tipo (ad esempio, non siamo in grado di vedere ciò che tipo di oggetto sta gettando l'eccezione e non in grado di guardare in alto vincoli in MSDN). Sono sicuro che con questo qualcuno sarebbe in grado di fornire una risposta definitiva.

L'atto di ridurre il codice per un campione sarà di per sé probabilmente consentono di trovare la causa.

Ryan

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top