で発生しました。未処理の例外は、私はエラーを取得していますSystem.DirectoryServices.dll
奇妙なことに、韻や理由がないようですが、私はTRYでそれを持っていますし、何らかの理由で最近アプリがクラッシュし始めました。デバッガではポップアップが表示され、スレッドを終了してスレッドを終了し、「失敗」アクションが機能し、次のサイクルで移動を再実行できます。それをスニップ--code
< - >
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
どれしかし、提案、ヒント、または修正をいただければ幸いです。 これはマルチスレッドアプリケーション、特にこの部分です。私はスレッドと同じ問題の数をダイヤルしようとしました。
大胆なコードはできないようです。エラーを受け取っている場所は** newUser.MoveToです(新しいDirectoryEntry(LDAPSpecial&Replace(Processing_DataResults.Rows.Item(Master_Loop)(16)、 "/"、 "\ /")))** –
コードブロックは、理由のためのコードブロックです。 :) –
誰もいない? :/ まあ、私はそれが難しいと感じた唯一の人ではないことを嬉しく思います。 –