Ich erhalte eine Fehlermeldung:Eine nicht behandelte Ausnahme des Typs ‚System.AccessViolationException‘ aufgetreten in System.DirectoryServices.dll
An unhandled exception of type 'System.AccessViolationException' occurred in System.DirectoryServices.dll
zufällig während eine Handvoll Benutzer bewegt.
Es ist seltsam, es scheint keinen Sinn zu geben, wenn sie auftreten, ich habe es in einem TRY und aus irgendeinem Grund in letzter Zeit begann es die App zu stürzen. Im Debugger werden sie angezeigt, Sie können über sie weiterarbeiten und den Thread beenden, die "Fehler" -Aktionen funktionieren und führen die Bewegung im nächsten Zyklus erneut aus.
< --Code es Snip ->
If Action_Exe = "Update" Then
If IsDBNull(Processing_DataResults.Rows.Item(Master_Loop)(16)) Then
Trace.WriteLine("Error in datatable. NULL found.")
Trace.WriteLine("Record: " & Master_Loop)
Trace.WriteLine("User: " & Processing_DataResults.Rows.Item(Master_Loop)(1))
Trace.WriteLine("AD Current Path: " & newUser.Path)
'Update to try again
CycleSQLQUERY.CommandText = "UPDATE [dbo].[AMS_Processing_Table] SET [Process_FLAG] = 3 WHERE [TrackingID] = '" & Processing_DataResults.Rows.Item(Master_Loop)(0).ToString & "';"
WinEventLog.WriteEntry("Account Processing Thread: Null Var Found in Datatable. - " & Processing_DataResults.Rows.Item(Master_Loop)(1) & "-" & Master_Loop, EventLogEntryType.FailureAudit, 1614)
Continue For
End If
Trace.WriteLine("OLD: " & Replace(newUser.Path, newUser.Name & ",", ""))
Trace.WriteLine("New: " & LDAPSpecial & Replace(Processing_DataResults.Rows.Item(Master_Loop)(16), "/", "\/"))
If LCase(Replace(newUser.Path, newUser.Name & ",", "")) <> LCase(LDAPSpecial & Replace(Processing_DataResults.Rows.Item(Master_Loop)(16), "/", "\/")) Then
Thread.Sleep(100)
Dim UserObjPath As String = newUser.Path
Dim SuccessfulMove As Boolean = True
Try
newUser.MoveTo(New DirectoryEntry(LDAPSpecial & Replace(Processing_DataResults.Rows.Item(Master_Loop)(16), "/", "\/")))
Catch CatchALL As Exception
Trace.WriteLine(CatchALL.GetType)
Trace.WriteLine("OLD: " & Replace(newUser.Path, newUser.Name & ",", ""))
Trace.WriteLine("New: " & LDAPSpecial & Replace(Processing_DataResults.Rows.Item(Master_Loop)(16), "/", "\/"))
WinEventLog.WriteEntry("Account Processing Thread: Failed to move user object in AD. - " & Processing_DataResults.Rows.Item(Master_Loop)(1) & " - " & CatchALL.Message & "; OLD: " & LCase(Replace(newUser.Path, newUser.Name & ",", "")) & "; NEW:" & LCase(LDAPSpecial & Replace(Processing_DataResults.Rows.Item(Master_Loop)(16), "/", "\/")), EventLogEntryType.FailureAudit, 1611)
SuccessfulMove = False
CycleSQLQUERY.CommandText = "UPDATE [dbo].[AMS_Processing_Table] SET [Process_FLAG] = 3 WHERE [TrackingID] = '" & Processing_DataResults.Rows.Item(Master_Loop)(0).ToString & "';"
Try
CycleSQLQUERY.ExecuteNonQuery()
Catch ex_SQL As Exception
'addin 5/3/16
End Try
Continue For
End Try
If SuccessfulMove = True Then
Dim ChangeLineCount As Int64
Alle aber, Anregungen, Tipps oder Korrekturen würden sehr geschätzt. Dies ist eine Multi-Thread-Anwendung, insbesondere dieser Teil. Ich habe versucht, die Anzahl der Threads und das gleiche Problem zu wählen.
Es scheint, Sie können nicht fett Code. Der Ort, an dem der Fehler auftritt, ist auf ** newUser.MoveTo (Neuer DirectoryEntry (LDAPSpecial & Replace (Processing_DataResults.Rows.Item (Master_Loop) (16), "/", "\ /")) ** –
Ein Code Block ist aus einem Grund ein Codeblock. :) –
Niemand? : -/ nun, ich bin froh, dass ich nicht der Einzige bin, der es schwierig gefunden hat. –