Φίλε Γιώργο ευχαριστώ για την ανταπόκριση. Ουσιαστικά έχω ένα COM+ Component από Delphi7 στο οποίο εχω κάποιες μεθόδους που θέλω να καλέσω απο ASP .Net. (παιρνω κάθε φορά ενα xml String με κάποιες τιμές και δημιουργώ κάποιο chart)
Try
Dim _type As Type = Type.GetTypeFromProgID("AlisseMonitor_Agent.AlisseMonitorAgent", aIP)
obj = Activator.CreateInstance(_type)
If Not obj Is Nothing Then
fResult = obj.AlisseStatus(DataFromObj.Text)
End If
fWideString = DataFromObj.Text
DataFromObj.Text = ""
If fResult = -1 Then
Return fWideString + " ERROR " + fResult.ToString
End If
Dim res As New System.IO.StringReader(fWideString)
DataSet1.ReadXml(res)
If MyData.Rows.Count = DataSetRows Then
MyData.Rows(0).Delete()
End If
Finally
Try
Dim CNT As Integer
If Not obj Is Nothing Then
Do
CNT = System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
Loop While (CNT > 1)
obj = Nothing
End If
If Not obj Is Nothing Then obj = Nothing
Catch ex As Exception
'do Nothing...
End Try
End Try
Αν αυτό Βοηθάει, παρατήρησα ότι κάνοντας Dispose το object (obj.Dispose)
αύτό παρέμενε στον mts και συνεχώς έβλεπα να αυξανονται οι μετρητές...
(δεν ειδα πουθενά τον GC να περνάει και να καθαρίζει τα σκουπίδια, μάλλον ξέρει να κρύβετε καλά
)
Ίσως η μαγική λέξη να είναι απο όλους παράτα την Delphi και ξαναγράψε τα COM σε .Net, αλλα ρε παιδιά καταλάβετε και μένα, είναι πάρα πολλά για να τα ξαναγράψω απο την αρχη..
Πίνω για να ξεχνώ (
)
P.L.
Παναγιώτης Λαβίδας
Software Developer