У меня есть немного измененный AccountController, который должен записать строку в таблицу при входе в систему.
Однако страница перенаправляется до завершения действия БД, поэтому ничего не вставляется.
Я временно решил эту проблему, вставив Thread.Sleep, но я ищу альтернативу, которая делает его безупречным.
If Not String.IsNullOrEmpty(returnUrl) Then
Return Redirect(returnUrl)
Else
Dim db As New GlobalSecModelDataContext
Dim logAdmin = New secAdminLog
logAdmin.EmployeeNumber = userName
logAdmin.What = "Logged in"
logAdmin.DateLogged = DateTime.Now
logAdmin.UserIP = Request.ServerVariables("REMOTE_ADDR")
logAdmin.NetworkUser = Request.ServerVariables("REMOTE_USER")
db.secAdminLogs.InsertOnSubmit(logAdmin)
db.SubmitChanges()
Session("LoggedInUser") = StrConv(userName, VbStrConv.ProperCase)
Threading.Thread.Sleep(5000)
Return Redirect("/Home")
End If
Есть ли лучшее решение, которое было бы быстрее для пользователя, использующего систему, или использует Threading.Thread.Sleep(5000)
лучший способ?
Я считаю Threading.Thread.Sleep(5000)
не идеальным, поскольку транзакция с БД не всегда завершается в это время.
Любые предложения будут полезны. Заранее спасибо.