Wir haben eine Website, die wir ASP.Net Webpages gebaut mitvon SQL Server CE zu SQL Server migriert, jetzt verursachen WebSecurity SQL Timeouts
ich vor kurzem die Datenbank von SQL Server CE zu SQL Server 2014 migriert Ich tat dies mit die SQL Server Compact Toolbox auf meinem lokalen Computer, dann die .mdf
Datei an unsere Website hosts SQL Server-Instanz angehängt.
Alles hat gut funktioniert und die Seite schien gut zu laufen. Doch kurz nach, fing ich an intermittierende Ausnahmen zu bemerken, die wie diese:
System.Web.HttpUnhandledException (0x80004005): Ausnahme vom Typ ‚System.Web.HttpUnhandledException‘ geworfen wurden.
System.Data.SqlClient.SqlException (0x80131904): Zeitlimit abgelaufen. Das Zeitlimit ist vor dem Abschluss des Vorgangs abgelaufen oder der Server reagiert nicht.
System.ComponentModel.Win32Exception (0x80004005): Die Warteoperation abgelaufen
bei System.Data.SqlClient.SqlInternalConnection.OnError (SqlException Ausnahme, Boolean Breakconnection, Aktion
1 wrapCloseInAction)
1 Abschluss, Int32 Timeout, Aufgabe & Aufgabe , Boolean AsyncWrite)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
at System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync()
at System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket()
at System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer()
at System.Data.SqlClient.TdsParserStateObject.TryReadByte(Byte& value)
at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
at System.Data.SqlClient.SqlDataReader.TryConsumeMetaData()
at System.Data.SqlClient.SqlDataReader.get_MetaData()
at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite, SqlDataReader ds, Boolean describeParameterEncryptionRequest)
at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource
bei System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String-Methode)
bei System.Data.SqlClient.SqlCommand.ExecuteScalar()
bei WebMatrix.Data. Database.QueryValue (String commandText, Obje ct [] args)
bei WebMatrix.WebData.DatabaseWrapper.QueryValue (String Command, Object [] Parameter)
bei WebMatrix.WebData.SimpleMembershipProvider.GetUserId (IDatabase db, String userTableName, String userNameColumn, String userIdColumn, String username)
bei WebMatrix.WebData.SimpleMembershipProvider.GetUser (String username, Boolean userIsOnline)
bei System.Web.Security.Membership.GetUser (String username, Boolean userIsOnline)
bei WebMatrix.WebData.WebSecurity.GetUserId (String username)
bei WebMatrix.WebData.WebSecurity.get_CurrentUserId()
bei ASP._Page_Default_cshtml. <> c__DisplayClass5.b__3() in e: \ web \ givenoru \ Default.cshtml: Zeile 118
bei System.Web.WebPages.WebPageBase. <> c__DisplayClassb.b__9 (Textwriter tw)
bei System.Web.WebPages.HelperResult.WriteTo (Textwriter writer)
bei System.Web.WebPages.WebPageBase.Write (HelperResult Ergebnis)
bei ASP._Page__SiteLayout_cshtml.Execute (in e): \ web \ givetoru_SiteLayout.cshtml: Leitung 184
bei System.Web.WebPages.WebPageBase.ExecutePageHierarchy()
bei System.Web.WebPages.WebPage.ExecutePageHierarchy (IEnumerable1 executors)
1 body)
at System.Web.WebPages.WebPage.ExecutePageHierarchy()
at System.Web.WebPages.WebPageBase.ExecutePageHierarchy(WebPageContext pageContext, TextWriter writer, WebPageRenderingBase startPage)
at System.Web.WebPages.WebPageBase.<>c__DisplayClass7.<RenderPageCore>b__6(TextWriter writer)
at System.Web.WebPages.HelperResult.WriteTo(TextWriter writer)
at System.Web.WebPages.WebPageBase.Write(HelperResult result)
at System.Web.WebPages.WebPageBase.RenderSurrounding(String partialViewName, Action
bei System. Web.WebPages.WebPageBase.PopContext()
bei System.Web.WebPages.WebPageBase.ExecutePageHierarchy (WebPageContext pageContext, TextWr iter writer, WebPageRenderingBase startPage)
bei System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal (Httpcontextbase Httpcontext)ClientConnectionId: 4f57f963-05e1-4429-946b-504e59e13050
Fehlernummer: -2, Status: 0, Klasse: 11bei System.Web.WebPages.WebPageHttpHandler.HandleError (Exception e)
bei System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal (Httpcontextbase Httpcontext)
bei System.Web.WebPages.WebPageHttpHandler.ProcessRequestInternal (Httpcontext context)
bei System.Web.WebPages.WebPageHttpHandler.ProcessRequest (Httpcontext-Kontext)
bei System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
bei System.Web.HttpApplication.ExecuteStep (IExecutionStep Schritt, Boolean & completedSynchronously)
Nachdem einige graben tun, es sieht aus wie es mit Anrufen zu WebMatrix.WebData.WebSecurity
Klassen wie diese zu tun haben kann:
WebSecurity.CurrentUserId
Hat jemand irgendwelche Gedanken auf, was könnte dazu führen, dieses Problem? Muss ich etwas Besonderes für meine DB tun, um diese Zeitüberschreitungen zu vermeiden?
aktualisieren 20.170.303 922AM CT
Hier ist meine Verbindungszeichenfolgen sind als Referenz (mit sensiblen Daten unkenntlich gemacht):
<add name="StarterSiteEntities" connectionString="metadata=res://*/App_Code.ProductModel.csdl|res://*/App_Code.ProductModel.ssdl|res://*/App_Code.ProductModel.msl;provider=System.Data.SqlClient;provider connection string="data source=tcp:*****;initial catalog=*****;integrated security=False;Connection Timeout=30;user id=*****;password=****;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
<add name="StarterSite" connectionString="Data Source=tcp:****;Initial Catalog=****;User ID=****;Password=*****;Integrated Security=False;Connection Timeout=30;" providerName=
"System.Data.SqlClient" />
Hier ist die Linie von meiner _AppStart.cshtml
Datei, die die WebSecurity DB-Verbindung initialisiert:
WebSecurity.InitializeDatabaseConnection("StarterSite", "UserProfile", "UserId", "Email", autoCreateTables: false);
Nur eine kurze Idee: WebMatrix.WebData.WebSecurity behandelt den SimpleMembershipProvider. Standardmäßig kann eine vollständig andere Verbindungszeichenfolge als der normale Datenzugriffscode verwendet werden. Sie können also überprüfen, ob zwei verschiedene Verbindungszeichenfolgen verwendet werden, und möglicherweise wurde bei der Migration zur vollständigen SQL Server-Datenbank keine Aktualisierung durchgeführt. –
Dies sieht wie ein allgemeines Timeout-Problem aus. Wenn Sie SQL Server neu starten, verschwindet das Zeitlimitproblem? Ie. Tritt das Problem erst auf, nachdem SQL Server eine Weile ausgeführt wurde? – Dean