Hallo,
ich will einen Dienst erstellen der mit der Tobit API zusammen arbeiten soll.
Dafür habe ich als grundlage das Beispiel aus der API hilfe genommen.
Diese Funktion läuft auch bei mir, nun wollte ich das Programm als Windows Dienst laufen lassen und da bekomme ich immer die Fehlermeldung ganz unten in meinem Beitrag in der geht es um die Funktion DVEmlFromMailItem.
Hat jemand eine Idee warum die Funktion in meinem Programm super läuft aber in meinem Dienst nicht?
Public Declare Function DVEmlFromMailItem Lib "DvApi32" (ByVal oMailItem As Object, ByVal strFileName As String) As Long
Public Sub MailArchivierung()
Dim oApp As Object
Dim oAccount As Object
Dim oArchive As Object
Dim oMailItem As Object
Dim oMessageItems As Object
Dim Filename, Zielpfad As String
Dim i As Integer
oApp = CreateObject("DVOBJAPILib.DvISEAPI")
oAccount = oApp.Logon("####", "####", "####", "", "", "AUTH")
oArchive = oAccount.GetArchive("System/Archivieren/in")
oMessageItems = oArchive.AllItems
For i = 0 To oMessageItems.Count - 1
If oMessageItems.Item(i).Type = 2 Then
oMailItem = oMessageItems.Item(i)
Filename = Space(255)
If DVEmlFromMailItem(oMailItem, Filename) <> 0 Then
Filename = Filename.Remove(Filename.IndexOf(".tmp") + 4, 1).Trim.ToCharArray
Zielpfad = "C:\Test\" & CreateFileName() & ".eml"
If System.IO.File.Exists(Filename.Trim) Then
My.Computer.FileSystem.CopyFile(Filename.Trim, Zielpfad.Trim, True)
End If
End If
End If
Next
oArchive = Nothing
oMailItem = Nothing
oMessageItems = Nothing
Filename = Nothing
Zielpfad = Nothing
End Sub
Der Dienst kann nicht gestartet werden. System.AccessViolationException: Es wurde versucht, im geschützten Speicher zu lesen oder zu schreiben. Dies ist häufig ein Hinweis darauf, dass anderer Speicher beschädigt ist.
bei TobitArchiving.Archivierung.DVEmlFromMailItem(MailItem oMailItem, String& strFileName)
bei TobitArchiving.Archivierung.MailArchivierung() in O:\VisualStudio\Projekte\TobitArchiving\TobitArchiving\Archivierung.vb:Zeile 64.
bei TobitArchiving.Archivierung..ctor(IApplication oApp, Account oAccount, String QuellArchiv, String Zielpfad, Int32 _Timer) in O:\VisualStudio\Projekte\TobitArchiving\TobitArchiving\Archivierung.vb:Zeile 29.
bei TobitArchiving.TobitEmailArchivierung.OnStart(String[] args) in O:\VisualStudio\Projekte\TobitArchiving\TobitArchiving\TobitEmailArchivierung.vb:Zeile 19.
bei System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)