Frage

Iam OutOfMemoryException bekommen, während Fernmethodenaufruf zu machen.

"RemoteEntity.SetLocalStore (DATASET);"

übergebene Wert ist Dataset.

Hinweis Größe des Datensatzes ist 38MB

envoirment c # VS2008

Danke

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

        }
War es hilfreich?

Lösung

Ich glaube, Sie kennen die Antwort, 38MB viel zu groß ist, einen Remote-Aufruf zu tun über. Was wird es helfen, diagnostizieren weiter lokal ein komplettes Beispiel zu zeigen, wäre durch Ihr Problem nur zwei Funktionen simplfying ausgeführt wird.

Dies wird helfen, festzustellen, ob es die Größe des Datensatzes oder eine Größe Einschränkung in der Remote-Schnittstelle / Netzwerkkonfiguration ist.

mit Zusätzlich wird ein funktionstüchtiges Beispiel jemand anderes erlauben würde, um das Problem zu replizieren und die Typinformationen (siehe zum Beispiel, können wir nicht sehen, welcher Objekttyp die Ausnahme werfen und können keine Einschränkungen in MSDN nachschlagen). Ich bin sicher, mit dieser jemand eine definitive Antwort geben würde.

Der Akt des Codes zu einer Probe reduziert wird selbst Dir wahrscheinlich ermöglichen, die Ursache zu finden.

Ryan

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top