Working with my project in debug I have no issues. However running it in IIS I am getting this error:
System.Data.SqlClient.SqlException: Login failed for user ‘domain\name-PC$’.
Stack Trace
[SqlException (0x80131904): Login failed for user 'DOMAIN\NAME-PC$'.]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction) +6749670
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose) +815
System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady) +4515
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +84
System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +53
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean ignoreSniOpenTimeout, TimeoutTimer timeout, Boolean withFailover) +368
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(ServerInfo serverInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString connectionOptions, SqlCredential credential, TimeoutTimer timeout) +6777754
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(TimeoutTimer timeout, SqlConnectionString connectionOptions, SqlCredential credential, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance) +6778255
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData) +878
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +1162
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +72
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +6781425
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +103
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +2105
System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +116
System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +1089
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +6785863
System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +233
System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +278
System.Data.SqlClient.SqlConnection.Open() +239
System.Data.Linq.SqlClient.SqlConnectionManager.UseConnection(IConnectionUser user) +65
System.Data.Linq.SqlClient.SqlProvider.get_IsSqlCe() +38
System.Data.Linq.SqlClient.SqlProvider.InitializeProviderMode() +30
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +81
System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +54
System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +446
System.Linq.Enumerable.ToList(IEnumerable`1 source) +80
MvcMobile.Controllers.HomeController.Index() +38
lambda_method(Closure , ControllerBase , Object[] ) +79
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +261
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39
System.Web.Mvc.Async.<>c__DisplayClass42.<BeginInvokeSynchronousActionMethod>b__41() +34
System.Web.Mvc.Async.<>c__DisplayClass39.<BeginInvokeActionMethodWithFilters>b__33() +124
System.Web.Mvc.Async.<>c__DisplayClass4f.<InvokeActionMethodFilterAsynchronously>b__49() +839035
System.Web.Mvc.Async.<>c__DisplayClass37.<BeginInvokeActionMethodWithFilters>b__36(IAsyncResult asyncResult) +15
System.Web.Mvc.Async.<>c__DisplayClass2a.<BeginInvokeAction>b__20() +33
System.Web.Mvc.Async.<>c__DisplayClass25.<BeginInvokeAction>b__22(IAsyncResult asyncResult) +839620
System.Web.Mvc.<>c__DisplayClass1d.<BeginExecuteCore>b__18(IAsyncResult asyncResult) +28
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +15
System.Web.Mvc.Controller.EndExecuteCore(IAsyncResult asyncResult) +65
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +15
System.Web.Mvc.Controller.EndExecute(IAsyncResult asyncResult) +51
System.Web.Mvc.<>c__DisplayClass8.<BeginProcessRequest>b__3(IAsyncResult asyncResult) +42
System.Web.Mvc.Async.<>c__DisplayClass4.<MakeVoidDelegate>b__3(IAsyncResult ar) +15
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult) +51
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +606
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +288
The number one solution I can find through Google is to change the application pool advanced Identity settings which did not work.
I am using IIS 7.5 and I am connecting to SQLServer 2012 my connection string is below.
Connection String
<add name="_DataConnectionString" connectionString="Data Source=01DEV\SQLDEV01;Initial Catalog=_Data;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework"
providerName="System.Data.SqlClient" />
Discover expert solutions that worked for others
by Kazim Ali Alvi
Kazim has always been fond of technology, be it scrolling through the settings on his iPhone, Android device, or Windows. And at times, unscrewing the device to take… read more
Updated on
- The 0x80131904 prevents users from signing in and has been a major concern for administrators.
- It generally appears when incorrect credentials are provided, or the firewall is blocking the connection.
- To fix things, check for network issues, verify firewall rules, or change the DNS entries, amongst other solutions.
Administrators creating applications using a SQL connection don’t usually face many issues if the backend is tight. But often, due to misconfigurations or network issues, users come across the 0x80131904 error.
The message reads, A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 – The specified network name is no longer available.). It’s not something regular users can fix, and administrators, too, have a tough time dealing with it. Let’s find out more!
What is component error code 0x80131904?
The error usually has to do with a network-related issue, but if the problem persists, it could be settings to blame. More so, for some administrators, only a handful of users encountered the 0x80131904 error, while others could easily access things.
Here are a few reasons you are encountering the error:
- Incorrect credentials: When a user enters incorrect credentials, the error message may appear. So you will have to verify that.
- Firewall blocking the connection: In some cases, a firewall was blocking the connection, and it could be both, the one on the server’s side as well as the user’s end. For the latter, you can easily disable the firewall.
- Network issues: Some administrators found that it was a network issue triggering the error, and things automatically resolved in a short while.
- Misconfigured SQL settings: For a few, the server properties were misconfigured, or the security settings were not optimal, which led to the error.
How do I fix error 0x80131904?
Before we move to the slightly complex solutions, check these aspects first:
- Verify that the user is not entering incorrect credentials to access the application.
- Check for network issues and talk to the service provider for an update on it.
- Make sure the firewall is not blocking the connection. You can disable it temporarily to verify the same.
If none work, head to the fixes listed next.
1. Change the DNS entries
- Press Windows + E to open File Explorer, paste the following path in the address bar, and hit Enter:
C:/Windows/System32/Drivers/ETC
- Now, change the DNS entries in the hosts.ini file.
An administrator shared that changing the DNS entries fixed things when only a single user was unable to access the server while others could. Whether or not that’s the case with you, do try this first.
2. Reconfigure server authentication setting
- Open the Server Properties and select Security from the navigation pane.
- Now, under Server authentication, choose SQL server with Windows Authentication mode, and click OK to save the changes.
In some cases, the server’s security settings were be to blame for the 0x80131904: login failed error, and reconfiguring Server authentication to SQL Server and Windows Authentication mode got things running.
3. Downgrade the SQL client package
For many, the problem appeared after updating to a newer SQLClient package, which points to a bug in it. And in this case, you should downgrade to the previous one.
For instance, a user reported the issue after upgrading to 2.0.0 from 1.1.3 and reverting the change fixed things in no time.
- Error Authenticating With Venmo: 6 Ways to Fix it
- Fix: Immersive Reader not Working in OneNote
- WS-117178-5 PS5 Error Code: How to Fix it
- TypingClub is Not Working on Windows 11? Here’s What to do
4. Remove problematic suites
If nothing else worked, you could remove the following two cipher suites from the client list:TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
This has worked for many users, but remember to check if a patch has been released for the problem before making changes to fix 0x80131904.
Before you leave, check some quick tips to increase the Internet speed in Windows.
For any queries or to share what worked for you, drop a comment below.
User1887919918 posted
Help me:
Exception Details: System.Data.SqlClient.SqlException: Login failed for user ‘name’.
Source Error:
Line 205: using (SqlCommand command = new SqlCommand(«GetNonEmptyAlbums», connection)) {
Line 206: command.CommandType = CommandType.StoredProcedure;
Line 207: connection.Open();
Line 208: List<Album> list = new List<Album>();
Line 209: using (SqlDataReader reader = command.ExecuteReader()) {
Source File: x:\Inetpub\name.domain\personal\mysite.name.domain\www\App_Code\PhotoManager.cs Line: 207
Stack Trace:
[SqlException (0x80131904): Login failed for user ‘name’.]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +739123
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +188
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1956
System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +33
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +170
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +349
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +181
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +170
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +359
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +28
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +424
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66
System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +496
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +82
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +105
System.Data.SqlClient.SqlConnection.Open() +111
PhotoManager.GetRandomAlbumID() in x:\Inetpub\name.domain\personal\mysite.name.domain\www\App_Code\PhotoManager.cs:207
PhotoManager.GetPhotos() in x:\Inetpub\name.domain\personal\mysite.name.domain\www\App_Code\PhotoManager.cs:100
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0
System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +72
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +296
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +29
System.Web.UI.WebControls.ObjectDataSourceView.InvokeMethod(ObjectDataSourceMethod method, Boolean disposeInstance, Object& instance) +482
System.Web.UI.WebControls.ObjectDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +2040
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +17
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +149
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70
System.Web.UI.WebControls.FormView.DataBind() +4
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
System.Web.UI.WebControls.FormView.EnsureDataBound() +163
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +69
System.Web.UI.Control.EnsureChildControls() +87
System.Web.UI.Control.PreRenderRecursiveInternal() +41
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1360
———————————————————————————
Version Information: Microsoft .NET Framework Version:2.0.50727.832; ASP.NET Version:2.0.50727.832
*******************************
«Login failed for user ‘user’.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.SqlClient.SqlException: Login failed for user ‘user’.
Source Error:
Line 5: void Application_Start(object sender, EventArgs e) {
Line 6: SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(AppendQueryString);
Line 7: if (!Roles.RoleExists(«Administrators»)) Roles.CreateRole(«Administrators»);
Line 8: if (!Roles.RoleExists(«Friends»)) Roles.CreateRole(«Friends»);
Line 9: }
Source File: x:\Inetpub\name.domain\personal\mysite.name.domain\www\Global.asax Line: 7
Stack Trace:
[SqlException (0x80131904): Login failed for user ‘user’.]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +739123
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +188
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1956
System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +33
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +170
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +349
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +181
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +170
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +359
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +28
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +424
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66
System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +496
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +82
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +105
System.Data.SqlClient.SqlConnection.Open() +111
System.Web.DataAccess.SqlConnectionHolder.Open(HttpContext context, Boolean revertImpersonate) +84
System.Web.DataAccess.SqlConnectionHelper.GetConnection(String connectionString, Boolean revertImpersonation) +197
System.Web.Security.SqlRoleProvider.RoleExists(String roleName) +482
System.Web.Security.Roles.RoleExists(String roleName) +242
ASP.global_asax.Application_Start(Object sender, EventArgs e) in x:\Inetpub\name.domain\personal\mysite.name.domain\www\Global.asax:7
———————————————————————————
Version Information: Microsoft .NET Framework Version:2.0.50727.832; ASP.NET Version:2.0.50727.832 «
- Remove From My Forums
-
Question
-
Hi,
I intermitently received the «Exception from HRESULT: 0x80131904″ error message on my Sharepoint site. For example, it pops up when I try to add a documents in a document library.
What could be my problem?
Thanks!
Praveen
-
Edited by
Sunday, June 17, 2012 10:56 AM
-
Edited by
Answers
-
Hi,
0x80131904 is generally happened from SQL Server side. It may be caused by tempdb or Content Database is out of space.
So, please go to the SQL Server, and ensure there are still enough free space for the SQL Server.
Thanks,
Jinchun Chen
Jinchun Chen
Forum Support
Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact tnmff AT microsoft.com(Please replace AT with @)-
Marked as answer by
Praveen Manne
Wednesday, June 20, 2012 7:06 AM
-
Marked as answer by
User1887919918 posted
Help me:
Exception Details: System.Data.SqlClient.SqlException: Login failed for user ‘name’.
Source Error:
Line 205: using (SqlCommand command = new SqlCommand(«GetNonEmptyAlbums», connection)) {
Line 206: command.CommandType = CommandType.StoredProcedure;
Line 207: connection.Open();
Line 208: List<Album> list = new List<Album>();
Line 209: using (SqlDataReader reader = command.ExecuteReader()) {
Source File: x:Inetpubname.domainpersonalmysite.name.domainwwwApp_CodePhotoManager.cs Line: 207
Stack Trace:
[SqlException (0x80131904): Login failed for user ‘name’.]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +739123
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +188
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1956
System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +33
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +170
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +349
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +181
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +170
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +359
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +28
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +424
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66
System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +496
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +82
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +105
System.Data.SqlClient.SqlConnection.Open() +111
PhotoManager.GetRandomAlbumID() in x:Inetpubname.domainpersonalmysite.name.domainwwwApp_CodePhotoManager.cs:207
PhotoManager.GetPhotos() in x:Inetpubname.domainpersonalmysite.name.domainwwwApp_CodePhotoManager.cs:100
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +0
System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner) +72
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) +296
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +29
System.Web.UI.WebControls.ObjectDataSourceView.InvokeMethod(ObjectDataSourceMethod method, Boolean disposeInstance, Object& instance) +482
System.Web.UI.WebControls.ObjectDataSourceView.ExecuteSelect(DataSourceSelectArguments arguments) +2040
System.Web.UI.DataSourceView.Select(DataSourceSelectArguments arguments, DataSourceViewSelectCallback callback) +17
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +149
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +70
System.Web.UI.WebControls.FormView.DataBind() +4
System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
System.Web.UI.WebControls.FormView.EnsureDataBound() +163
System.Web.UI.WebControls.CompositeDataBoundControl.CreateChildControls() +69
System.Web.UI.Control.EnsureChildControls() +87
System.Web.UI.Control.PreRenderRecursiveInternal() +41
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Control.PreRenderRecursiveInternal() +161
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1360
———————————————————————————
Version Information: Microsoft .NET Framework Version:2.0.50727.832; ASP.NET Version:2.0.50727.832
*******************************
«Login failed for user ‘user’.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.Data.SqlClient.SqlException: Login failed for user ‘user’.
Source Error:
Line 5: void Application_Start(object sender, EventArgs e) {
Line 6: SiteMap.SiteMapResolve += new SiteMapResolveEventHandler(AppendQueryString);
Line 7: if (!Roles.RoleExists(«Administrators»)) Roles.CreateRole(«Administrators»);
Line 8: if (!Roles.RoleExists(«Friends»)) Roles.CreateRole(«Friends»);
Line 9: }
Source File: x:Inetpubname.domainpersonalmysite.name.domainwwwGlobal.asax Line: 7
Stack Trace:
[SqlException (0x80131904): Login failed for user ‘user’.]
System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) +739123
System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) +188
System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) +1956
System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK) +33
System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +170
System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +349
System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +181
System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +170
System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +359
System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) +28
System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) +424
System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) +66
System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) +496
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +82
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +105
System.Data.SqlClient.SqlConnection.Open() +111
System.Web.DataAccess.SqlConnectionHolder.Open(HttpContext context, Boolean revertImpersonate) +84
System.Web.DataAccess.SqlConnectionHelper.GetConnection(String connectionString, Boolean revertImpersonation) +197
System.Web.Security.SqlRoleProvider.RoleExists(String roleName) +482
System.Web.Security.Roles.RoleExists(String roleName) +242
ASP.global_asax.Application_Start(Object sender, EventArgs e) in x:Inetpubname.domainpersonalmysite.name.domainwwwGlobal.asax:7
———————————————————————————
Version Information: Microsoft .NET Framework Version:2.0.50727.832; ASP.NET Version:2.0.50727.832 «
title | description | services | ms.service | ms.subservice | ms.topic | ms.custom | author | ms.author | ms.reviewer | ms.date | ms.openlocfilehash | ms.sourcegitcommit | ms.translationtype | ms.contentlocale | ms.lasthandoff | ms.locfileid |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Устранение распространенных неполадок подключения к Базе данных SQL Azure |
Пошаговые инструкции по устранению проблем с подключением к базе данных SQL Azure и разрешению других баз данных SQL Azure или SQL Azure Управляемый экземпляр конкретных проблем. |
sql-database |
sql-db-mi |
development |
troubleshooting |
seo-lt-2019, OKR 11/2019, sqldbrb=1 |
ramakoni1 |
ramakoni |
sstein,vanto |
01/14/2021 |
ec61f2c67576d6e144d8d4bb7e8ecaaa157db0a9 |
910a1a38711966cb171050db245fc3b22abc8c5f |
MT |
ru-RU |
03/19/2021 |
98233378 |
Устранение проблем с подключением и другие ошибки в базе данных SQL Azure и Azure SQL Управляемый экземпляр
[!INCLUDEappliesto-sqldb-sqlmi]
Вы получаете сообщения об ошибках при сбое подключения к базе данных SQL Azure или Управляемый экземпляр Azure SQL. Эти проблемы подключения могут быть вызваны перенастройками, параметрами брандмауэра, временем ожидания подключения, неверными сведениями для входа или неудачами при применении рекомендаций и рекомендаций по проектированию в процессе разработки приложения . Кроме того, если достигнуто максимальное ограничение для некоторых баз данных SQL Azure или Управляемый экземплярных ресурсов SQL, вы больше не сможете подключаться.
Сообщения о временных ошибках сбоя (40197, 40613 и др.)
Инфраструктура Azure способна динамически изменять конфигурацию серверов при высокой рабочей нагрузке на службу баз данных SQL. Это динамическое поведение может привести к тому, что клиентская программа потеряет соединение с базой данных или экземпляром. Такое состояние называется временной ошибкой. События перенастройки базы данных обычно происходят в запланированном случае (например, при обновлении программного обеспечения) или в незапланированном случае (например, при сбое процесса или балансировке нагрузки). Большей частью события перенастройки кратковременные и должны завершаться в течение 60 секунд максимум. Тем не менее завершение этих событий иногда может занимать больше времени, например когда большая транзакция приводит к длительному восстановлению. В следующей таблице перечислены различные временные ошибки, которые могут быть получены приложениями при подключении к базе данных SQL.
Список кодов ошибок временной ошибки
Код ошибки | Уровень серьезности | Описание |
---|---|---|
4060 | 16 | Невозможно открыть базу данных %.*ls, запрашиваемую именем входа. Сбой при входе. Дополнительные сведения см. в разделе ошибки с 4000 по 4999 . |
40197 | 17 | При обработке вашего запроса служба обнаружила ошибку. Повторите попытку. Код ошибки: %d.
Эта ошибка возникает, если служба не работает по причине обновления программного или аппаратного обеспечения, аппаратных ошибок или проблем при отработке отказа. Код ошибки (%d), указанный в сообщении об ошибке 40197, содержит дополнительные сведения о характере сбоя или отработки отказа. В сообщении об ошибке 40197 может быть указан код ошибки 40020, 40143, 40166 или 40540. При повторном подключении вы автоматически подключаетесь к работоспособной копии базы данных. Приложение должно зафиксировать ошибку 40197, зарегистрировать указанный в сообщении код ошибки (%d) для устранения неполадок и повторять попытки подключения к базе данных SQL, пока не появится доступ к ресурсам, а подключение не будет восстановлено. Дополнительные сведения см. в разделе временные ошибки. |
40501 | 20 | Служба занята. Повторите запрос через 10 секунд. Идентификатор инцидента: %ls. Код: %d. Дополнительные сведения см. в разделе: • Ограничения на логические ресурсы SQL Server • Ограничения на основе DTU для отдельных баз данных • Ограничения на основе DTU для эластичных пулов • ограничения на основе виртуальное ядро для отдельных баз данных • ограничения для эластичных пулов на основе виртуальное ядро • Ограничения ресурсов управляемый экземпляр Azure SQL. |
40613 | 17 | База данных %.*ls на сервере %.*ls в данный момент недоступна. Повторите попытку подключения позже. Если проблема повторится, обратитесь в службу поддержки пользователей и сообщите идентификатор трассировки сеанса %.*ls.
Эта ошибка может возникать, если уже имеется выделенное административное соединение (DAC), установленное для базы данных. Дополнительные сведения см. в разделе временные ошибки. |
49918 | 16 | Не удается обработать запрос. Недостаточно ресурсов для обработки запроса.
Служба занята. Повторите запрос позже. Дополнительные сведения см. в разделе: |
49919 | 16 | Невозможно обработать запрос на создание или обновление. Для подписки «%ld» выполняется слишком много операций создания или обновления.
Служба занята обработкой нескольких запросов на создание или обновление для вашей подписки или сервера. В данный момент запросы блокируются для оптимизации ресурсов. Выполните запрос sys.dm_operation_status для ожидающих операций. Подождите, пока выполнятся ожидающие запросы на создание или обновление, либо удалите один из ожидающих запросов и повторите свой запрос позже. Дополнительные сведения см. в разделе: |
49920 | 16 | Не удается обработать запрос. Для подписки «%ld» выполняется слишком много операций.
Служба занята обработкой нескольких запросов для этой подписки. В данный момент запросы блокируются для оптимизации ресурсов. Выполните запрос sys.dm_operation_status для состояния операции. Подождите, пока выполнятся ожидающие запросы, либо удалите один из ожидающих запросов и повторите свой запрос позже. Дополнительные сведения см. в разделе: |
4221 | 16 | Произошел сбой при входе в базу данных-получатель для чтения из-за длительного ожидания выполнения HADR_DATABASE_WAIT_FOR_TRANSITION_TO_VERSIONING. Вход в реплику невозможен, так как отсутствуют версии строк для транзакций, которые выполнялись при перезапуске реплики. Чтобы устранить проблему, откатите реплику или зафиксируйте активные транзакции в первичной реплике. Большинство таких случаев можно избежать, если не выполнять длительные транзакции записи в базе данных-источнике. |
Порядок устранения временных проблем подключения
- Проверьте панель мониторинга служб Microsoft Azure на наличие каких-либо известных сбоев, произошедших в то время, когда приложение сообщало об ошибках.
- Приложения, подключающиеся к облачной службе, такой как база данных SQL Azure, должны ждать периодические события перенастройки и реализовать логику повторных попыток для обработки этих ошибок, а не отображая ошибок приложений пользователям.
- Если база данных близка к исчерпанию доступных ресурсов, может возникать временная проблема подключения. Дополнительные сведения см. в статье Обзор ограничений ресурсов базы данных SQL Azure.
- Если проблемы подключения остаются или интервал, во время которого приложение обнаруживает ошибку, превышает 60 секунд, а также если в определенный день такая ошибка возникает многократно, зарегистрируйте запрос на поддержку Azure, нажав Получить поддержку на сайте Поддержка Azure .
Реализация логики повторов
Настоятельно рекомендуем включить в клиентской программе логику повторных попыток, чтобы программа смогла восстановить подключение после определенного периода, позволяющего временной ошибке самоустраниться. Рекомендуется подождать 5 секунд, прежде чем выполнять первую повторную попытку. Повторная попытка через задержку менее 5 секунд перегрузить облачную службу. Для каждой последующей повторной попытки ожидание должно увеличиваться экспоненциально, но не более чем до 60 секунд.
Примеры кода с логикой повторных попыток см. в следующих статьях:
- Выполнение устойчивого подключения к SQL с помощью ADO.NET
- Выполнение устойчивого подключения к SQL с помощью PHP
Дополнительные сведения об обработке временных ошибок в проверке приложения см. в статье Устранение временных ошибок подключения к базе данных SQL .
Обсуждение периода блокировки для клиентов, использующих ADO.NET, доступно в разделе Организация пулов соединений (ADO.NET).
При установлении соединения с сервером произошла ошибка, связанная с сетью или экземпляром
Эта проблема возникает, если приложению не удается подключиться к серверу.
Чтобы устранить эту проблему, попробуйте выполнить действия (в указанном порядке) в разделе действия по исправлению общих проблем с подключением .
Сервер или экземпляр не найден или недоступен (ошибки 26, 40, 10053)
Ошибка 26: ошибка при поиске указанного сервера
System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections.(provider: SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified)
Ошибка 40: не удалось открыть соединение с сервером
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
Ошибка 10053: произошла ошибка на транспортном уровне при получении результатов с сервера
10053: A transport-level error has occurred when receiving results from the server. (Provider: TCP Provider, error: 0 - An established connection was aborted by the software in your host machine)
Эти проблемы возникают, если приложению не удается подключиться к серверу.
Чтобы устранить эти проблемы, выполните действия (в указанном порядке) в разделе действия по исправлению общих проблем подключения .
Не удается подключиться к серверу из-за проблем с брандмауэром
Ошибка 40615: не удается подключиться к < ServerName >
Чтобы устранить эту проблему, Настройте параметры брандмауэра в базе данных SQL с помощью портал Azure.
Ошибка 5: не удается подключиться к < ServerName >
Чтобы устранить эту проблему, убедитесь, что порт 1433 открыт для исходящих подключений во всех брандмауэрах между клиентом и Интернетом.
Не удалось войти на сервер (ошибки 18456, 40531)
Ошибка входа пользователя «< имя пользователя >»
Login failed for user '<User name>'.This session has been assigned a tracing ID of '<Tracing ID>'. Provide this tracing ID to customer support when you need assistance. (Microsoft SQL Server, Error: 18456)
Чтобы устранить эту проблему, обратитесь к администратору службы, чтобы указать допустимое имя пользователя и пароль.
Как правило, администратор служб может выполнить следующие действия, чтобы добавить учетные данные для входа.
-
Войдите на сервер с помощью SQL Server Management Studio (SSMS).
-
Выполните следующий SQL-запрос в базе данных master, чтобы проверить, отключено ли имя для входа.
SELECT name, is_disabled FROM sys.sql_logins;
-
Если имя отключено, включите его с помощью следующей инструкции:
ALTER LOGIN <User name> ENABLE;
-
Если имя пользователя для входа SQL не существует, измените и выполните следующий SQL-запрос, чтобы создать новое имя входа SQL:
CREATE LOGIN <SQL_login_name, sysname, login_name> WITH PASSWORD = '<password, sysname, Change_Password>'; GO
-
В обозревателе объектов SSMS разверните узел базы данных.
-
Выберите базу данных, которой необходимо предоставить разрешение пользователя.
-
Щелкните правой кнопкой мыши Безопасность, а затем выберите создать, пользователь.
-
В созданном скрипте с заполнителями измените и выполните следующий запрос SQL:
CREATE USER <user_name, sysname, user_name> FOR LOGIN <login_name, sysname, login_name> WITH DEFAULT_SCHEMA = <default_schema, sysname, dbo>; GO -- Add user to the database owner role EXEC sp_addrolemember N'db_owner', N'<user_name, sysname, user_name>'; GO
С помощью можно также
sp_addrolemember
сопоставлять конкретных пользователей с конкретными ролями базы данных.[!NOTE]
В базе данных SQL Azure рассмотрите новый синтаксис ALTER ROLE для управления членством в роли базы данных.
Дополнительные сведения см. в статье Управление базами данных и именами входа в базе данных SQL Azure.
Ошибки времени ожидания подключения истекли
System. Data. SqlClient. SqlException (0x80131904): время ожидания подключения истекло
System.Data.SqlClient.SqlException (0x80131904): Connection Timeout Expired. The timeout period elapsed while attempting to consume the pre-login handshake acknowledgement. This could be because the pre-login handshake failed or the server was unable to respond back in time. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=3; handshake=29995;
System. Data. SqlClient. SqlException (0x80131904): время ожидания истекло
System.Data.SqlClient.SqlException (0x80131904): Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
System. Data. Entity. Core. Ентитексцептион: сбой базового поставщика при открытии
System.Data.Entity.Core.EntityException: The underlying provider failed on Open. -> System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. -> System.ComponentModel.Win32Exception: The wait operation timed out
Не удается подключиться к серверу < имя >
Cannot connect to <server name>.ADDITIONAL INFORMATION:Connection Timeout Expired. The timeout period elapsed during the post-login phase. The connection could have timed out while waiting for server to complete the login process and respond; Or it could have timed out while attempting to create multiple active connections. The duration spent while attempting to connect to this server was - [Pre-Login] initialization=231; handshake=983; [Login] initialization=0; authentication=0; [Post-Login] complete=13000; (Microsoft SQL Server, Error: -2) For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&EvtSrc=MSSQLServer&EvtID=-2&LinkId=20476 The wait operation timed out
Эти исключения могут возникать из-за проблем с подключением или запросами. Чтобы убедиться, что эта ошибка вызвана проблемами подключения, см. статью Проверка причины ошибки подключения.
Время ожидания соединения связано с тем, что приложению не удается подключиться к серверу. Чтобы устранить эту проблему, попробуйте выполнить действия (в указанном порядке) в разделе действия по исправлению общих проблем с подключением .
Ошибки управления ресурсами
Ошибка 10928: идентификатор ресурса:% d
10928: Resource ID: %d. The %s limit for the database is %d and has been reached. See http://go.microsoft.com/fwlink/?LinkId=267637 for assistance. The Resource ID value in error message indicates the resource for which limit has been reached. For sessions, Resource ID = 2.
Чтобы обойти эту ошибку, попробуйте один из следующих методов.
-
Проверьте наличие долго выполняющихся запросов.
[!NOTE]
Это минимальный подход, который может не решить проблему. Дополнительные сведения об устранении неполадок с долговременным выполнением или блокировкой запросов см. в статье сведения о проблемах с блокировкой базы данных SQL Azure.
-
Выполните следующий запрос SQL, чтобы проверить sys.dm_exec_requests представление, чтобы увидеть все блокирующие запросы:
SELECT * FROM sys.dm_exec_requests;
-
Определите входной буфер для головного блока с помощью функции динамического управления sys.dm_exec_input_buffer и session_id запроса, вызвавшего ошибку, например:
SELECT * FROM sys.dm_exec_input_buffer (100,0);
-
Настройка запроса к головному блоку.
Если база данных постоянно достигает предела, несмотря на блокировку и длительные запросы, рассмотрите возможность обновления до выпуска с дополнительными выпускамиресурсов.
Дополнительные сведения об ограничениях базы данных см. в разделе ограничения ресурсов базы данных SQL для серверов.
Ошибка 10929: идентификатор ресурса: 1
10929: Resource ID: 1. The %s minimum guarantee is %d, maximum limit is %d and the current usage for the database is %d. However, the server is currently too busy to support requests greater than %d for this database. See http://go.microsoft.com/fwlink/?LinkId=267637 for assistance. Otherwise, please try again later.
Ошибка 40501: служба в настоящий момент занята
40501: The service is currently busy. Retry the request after 10 seconds. Incident ID: %ls. Code: %d.
Это ошибка регулирования подсистемы, которая указывает на превышение лимитов ресурсов.
Дополнительные сведения об ограничениях ресурсов см. в разделе ограничения ресурсов логических серверов SQL Server.
Ошибка 40544: достигнута квота на размер базы данных
40544: The database has reached its size quota. Partition or delete data, drop indexes, or consult the documentation for possible resolutions. Incident ID: <ID>. Code: <code>.
Эта ошибка возникает, когда база данных достигла квоты на размер.
Следующие шаги могут помочь решить проблему или предоставить дополнительные возможности:
-
Проверьте текущий размер базы данных с помощью панели мониторинга в портал Azure.
[!NOTE]
Чтобы узнать, какие таблицы потребляют наибольшее пространство, и, следовательно, потенциальные кандидаты на очистку, выполните следующий SQL-запрос:SELECT o.name, SUM(p.row_count) AS 'Row Count', SUM(p.reserved_page_count) * 8.0 / 1024 AS 'Table Size (MB)' FROM sys.objects o JOIN sys.dm_db_partition_stats p on p.object_id = o.object_id GROUP BY o.name ORDER BY [Table Size (MB)] DESC;
-
Если текущий размер не превышает максимальный размер, поддерживаемый в выпуске, можно использовать инструкцию ALTER DATABASE, чтобы увеличить значение параметра MAXSIZE.
-
Если размер базы данных уже превышает максимальный поддерживаемый выпуск, попробуйте выполнить одно или несколько из следующих действий.
- Выполнение обычных действий по очистке базы данных. Например, очистите ненужные данные с помощью функции усечения или удаления или перемещения данных с помощью SQL Server Integration Services (SSIS) или программы для создания программного копирования (BCP).
- Секционируйте или удалите данные, удалите индексы или попробуйте найти возможное решение в документации.
- Сведения об масштабировании базы данных см. в статье масштабирование ресурсов отдельной базы данных и масштабирование ресурса эластичного пула.
Ошибка 40549: сеанс завершен, так как имеется долго выполняющаяся транзакция
40549: Session is terminated because you have a long-running transaction. Try shortening your transaction.
Если эта ошибка повторяется, попробуйте устранить проблему, выполнив следующие действия.
-
Проверьте sys.dm_exec_requests представление, чтобы просмотреть все открытые сеансы, имеющие большое значение для столбца total_elapsed_time. Выполните эту проверку, выполнив следующий скрипт SQL:
SELECT * FROM sys.dm_exec_requests;
-
Определите входной буфер для головного блока с помощью функции динамического управления sys.dm_exec_input_buffer и session_id запроса, вызвавшего ошибку, например:
SELECT * FROM sys.dm_exec_input_buffer (100,0);
-
Настройте запрос.
[!Note]
Дополнительные сведения об устранении неполадок с блокировкой в базе данных SQL Azure см. в статье изучение и устранение проблем с блокировкой базы данных SQL Azure.
Также рассмотрите возможность пакетной обработки запросов. Сведения о пакетировании см. в разделе Использование пакетной обработки для повышения производительности приложения базы данных SQL.
Ошибка 40551: сеанс был завершен из-за чрезмерного использования базы данных TEMPDB
40551: The session has been terminated because of excessive TEMPDB usage. Try modifying your query to reduce the temporary table space usage.
Чтобы устранить эту проблему, выполните следующие действия:
- Измените запросы, чтобы уменьшить использование временного пространства таблицы.
- Удалить временные объекты после того, как они больше не нужны.
- Усечение таблиц или удаление неиспользуемых таблиц.
Ошибка 40552: сеанс был завершен из-за чрезмерного использования места в журнале транзакций
40552: The session has been terminated because of excessive transaction log space usage. Try modifying fewer rows in a single transaction.
Устранить эту проблему можно с помощью следующих методов.
-
Эта ошибка может возникнуть из-за операций вставки, обновления или удаления.
Попробуйте сократить количество строк, которые работают немедленно, путем реализации пакетной обработки или разделения на несколько меньших транзакций. -
Эта ошибка может возникать из-за операций перестроения индекса. Чтобы обойти эту ошибку, убедитесь, что число строк, затронутых в таблице * (средний размер поля, обновляемого в байтах + 80), < 2 гигабайта (ГБ).
[!NOTE]
Для перестроения индекса средний размер обновляемого поля должен быть заменен средним размером индекса.
Ошибка 40553: сеанс был завершен из-за чрезмерного использования памяти
40553 : The session has been terminated because of excessive memory usage. Try modifying your query to process fewer rows.
Чтобы обойти эту ошибку, попробуйте оптимизировать запрос.
Подробное описание процедуры устранения неполадок см. в статье как работает мой запрос в облаке?.
Таблица дополнительных сообщений об ошибках управления ресурсами
Код ошибки | Уровень серьезности | Описание |
---|---|---|
10928 | 20 | Идентификатор ресурса: %d. Предел %s для базы данных составляет %d, и он достигнут. Дополнительные сведения см. в статье Ограничения ресурсов Базы данных SQL для отдельных баз данных и баз данных в пуле.
Идентификатор ресурса указывает на ресурс, предел которого был достигнут. Для рабочих потоков идентификатор ресурса = 1. Для сеансов идентификатор ресурса — 2. Дополнительные сведения об этой ошибке и способах ее устранения см. в статье: |
10929 | 20 | Идентификатор ресурса: %d. Минимальная гарантия %s составляет %d, максимальное значение равно %d, а текущее использование для базы данных — %d. Тем не менее, в настоящее время сервер слишком занят, чтобы обработать более чем %d запросов для этой базы данных. Идентификатор ресурса указывает на ресурс, предел которого был достигнут. Для рабочих потоков идентификатор ресурса = 1. Для сеансов идентификатор ресурса — 2. Дополнительные сведения см. в разделе: • Ограничения на логические ресурсы SQL Server • Ограничения на основе DTU для отдельных баз данных • Ограничения на основе DTU для эластичных пулов • ограничения на основе виртуальное ядро для отдельных баз данных • ограничения для эластичных пулов на основе виртуальное ядро • Ограничения ресурсов управляемый экземпляр Azure SQL. В противном случае повторите попытку позже. |
40544 | 20 | База данных достигла предельного размера. Секционируйте или удалите данные, удалите индексы или попробуйте найти возможное решение в документации. Сведения об масштабировании базы данных см. в статье масштабирование ресурсов отдельной базы данных и масштабирование ресурса эластичного пула. |
40549 | 16 | Сеанс завершен по причине долго выполняющейся транзакции. Рекомендуется сократить транзакцию. Сведения о пакетировании см. в разделе Использование пакетной обработки для повышения производительности приложения базы данных SQL. |
40550 | 16 | Сеанс был завершен в связи с тем, что он получил слишком много блокировок. Рекомендуется сократить число строк, считываемых или изменяемых в одной транзакции. Сведения о пакетировании см. в разделе Использование пакетной обработки для повышения производительности приложения базы данных SQL. |
40551 | 16 | Сеанс остановлен из-за чрезмерного использования TEMPDB . Попробуйте изменить запрос, чтобы сократить объем использования временных таблиц.
Если вы используете временные объекты, то для экономии места в базе данных |
40552 | 16 | Сеанс был завершен в связи с чрезмерным использованием объема журнала транзакций. Рекомендуется сократить число строк, изменяемых в одной транзакции. Сведения о пакетировании см. в разделе Использование пакетной обработки для повышения производительности приложения базы данных SQL.
В случае выполнения массовых вставок с использованием служебной программы |
40553 | 16 | Сеанс был завершен в связи с чрезмерным использованием памяти. Рекомендуется изменить запрос, сократив число обрабатываемых строк.
Сокращение количества операций |
Ошибки пула эластичных БД
Приведенные ниже ошибки связаны с созданием и использованием эластичных пулов.
Код ошибки | Уровень серьезности | Описание | Действие по исправлению |
---|---|---|---|
1132 | 17 | Хранилище эластичного пула достигло своего предельного значения. Уровень использования хранилища для эластичного пула не может превышать (%d) МБ. Попытка записи данных в базу данных, когда было достигнуто предельное значение хранилища эластичного пула. Сведения об ограничениях ресурсов см. в следующих статьях: • Ограничения на основе DTU для эластичных пулов • ограничения на основе виртуальное ядро для эластичных пулов. |
Если это возможно, попробуйте увеличить DTU эластичного пула и (или) добавить в него пространство хранения для увеличения предельного размера его хранилища, сократить объем памяти, используемой отдельными базами данных в эластичном пуле, или удалить базы данных из пула. Сведения о масштабировании эластичных пулов см. в статье масштабирование ресурсов эластичного пула. Дополнительные сведения об удалении неиспользуемого пространства из баз данных см. в разделе Управление дисковым пространством для баз данных SQL Azure. |
10929 | 16 | Минимальная гарантия %s составляет %d, максимальное значение равно %d, а текущее использование для базы данных — %d. Тем не менее, в настоящее время сервер слишком занят, чтобы обработать более чем %d запросов для этой базы данных. Сведения об ограничениях ресурсов см. в следующих статьях: • Ограничения на основе DTU для эластичных пулов • ограничения на основе виртуальное ядро для эластичных пулов. В противном случае повторите попытку позже. Минимальное количество DTU или виртуальных ядер на базу данных; максимальное количество DTU или виртуальных ядер на базу данных. Общее количество одновременных работников (запросов) по всем базам данных в эластичном пуле превысило ограничение пула. |
Если это возможно, попробуйте увеличить DTU или число виртуальных ядер эластичного пула для увеличения предельно допустимого количества работников или удалить базы данных из эластичного пула. |
40844 | 16 | База данных ‘%ls’ на сервере ‘%ls’ является базой данных выпуска ‘%ls’ в эластичном пуле и не может иметь связь непрерывной копии. | Н/Д |
40857 | 16 | Эластичный пул для сервера ‘%ls’ не найден, имя эластичного пула: ‘%ls’. На указанном сервере указанный эластичный пул не существует. | Укажите допустимое имя эластичного пула. |
40858 | 16 | Эластичный пул «%ls» на сервере «%ls» уже существует. Указанный эластичный пул уже существует на указанном сервере. | Укажите новое имя эластичного пула. |
40859 | 16 | Эластичный пул не поддерживает уровень служб ‘%ls’. Для подготовки эластичного пула указанный уровень служб не поддерживается. | Укажите правильный выпуск или оставьте значение уровня служб пустым, чтобы использовать значение по умолчанию. |
40860 | 16 | Недопустимая комбинация эластичного пула ‘%ls’ и цели службы ‘%ls’. Эластичный пул и уровень служб можно указать вместе только в том случае, если тип ресурса задан как ElasticPool. | Укажите правильную комбинацию эластичного пула и уровня служб. |
40861 | 16 | Выпуск «%.ls» базы данных не может отличаться от уровня служб пула эластичных БД, который равен «%. ls». Выпуск базы данных отличается от уровня служб эластичного пула. | Не указывайте выпуск базы данных, отличный от уровня службы эластичного пула. Обратите внимание, что выпуск базы данных указывать не требуется. |
40862 | 16 | Если указана цель служб эластичного пула, то необходимо указать имя этого эластичного пула. Цель службы эластичного пула неоднозначно определяет эластичный пул. | Если используется цель служб эластичного пула, укажите имя этого эластичного пула. |
40864 | 16 | Число DTU для эластичного пула должно составлять по крайней мере (%d) DTU для уровня служб «%.*ls». Попытка задать для эластичного пула DTU, значение которого ниже минимального ограничения. | Повторите попытку, установив для эластичного пула DTU, значение которого хотя бы равно минимальному ограничению. |
40865 | 16 | Число DTU для эластичного пула не должно превышать (%d) DTU для уровня служб «%.*ls». Попытка задать для эластичного пула DTU, значение которого выше максимального ограничения. | Повторите попытку, установив для эластичного пула DTU, значение которого не превышает максимальное ограничение. |
40867 | 16 | Максимальное количество DTU на каждую базу данных должно составлять как минимум (%d) для уровня служб «%.*ls». Попытка задать максимальное количество DTU на каждую базу данных ниже поддерживаемого ограничения. | Попробуйте использовать уровень служб эластичного пула, который поддерживает желаемый параметр. |
40868 | 16 | Максимальное количество DTU на каждую базу данных не должно превышать (%d) для уровня служб «%.*ls». Попытка задать максимальное число DTU на каждую базу данных, которое находится за пределами поддерживаемого ограничения. | Попробуйте использовать уровень служб эластичного пула, который поддерживает желаемый параметр. |
40870 | 16 | Минимальное количество DTU на каждую базу данных не должно превышать (%d) для уровня служб «%.*ls». Попытка задать минимальное число DTU на каждую базу, которое находится за пределами поддерживаемого ограничения. | Попробуйте использовать уровень служб эластичного пула, который поддерживает желаемый параметр. |
40873 | 16 | Количество баз данных (%d) и минимальное количество DTU на каждую базу данных (%d) не может превышать DTU эластичного пула (%d). Попытка задать минимальное количество DTU для баз данных в эластичном пуле, превышающее DTU эластичного пула. | Попробуйте увеличить количество DTU эластичного пула, уменьшить минимальное количество DTU на каждую базу данных или уменьшить количество баз данных в эластичном пуле. |
40877 | 16 | Эластичный пул не может быть удален до тех пор, пока он содержит какую-либо базу данных. Эластичный пул содержит одну или несколько баз данных и не может быть удален. | Чтобы удалить эластичный пул, удалите из него базы данных. |
40881 | 16 | В эластичном пуле ‘%.*ls’ достигнуто предельное количество баз данных. Предельное количество баз данных не может превышать (%d) для эластичного пула с DTU (%d). Попытка создания или добавления базы данных в эластичный пул, когда было достигнуто предельное количество баз данных эластичного пула. | Если это возможно, попробуйте увеличить DTU эластичного пула, чтобы увеличить предельное количество баз данных, или удалить базы данных из эластичного пула. |
40889 | 16 | Невозможно уменьшить количество DTU или размер хранилища для эластичного пула ‘%.*ls’, так как недостаточно места в хранилище баз данных. Попытка ограничить размер хранилища эластичного пула, при которой уменьшается размер используемого им хранилища. | Попробуйте сократить использование хранилища отдельными базами данных в эластичном пуле или удалить базы данных из пула, чтобы уменьшить количество DTU или размер хранилища. |
40891 | 16 | Минимальное число DTU на базу данных (%d) не может превышать максимального числа DTU на базу данных (%d). Попытка задать минимальное число DTU на каждую базу данных, превышающее максимальное число DTU на каждую базу данных. | Убедитесь, что минимальное число DTU на базу данных не превышает максимального числа DTU на базу данных. |
TBD | 16 | Размер хранилища для отдельной базы данных в эластичном пуле не может превышать максимальный размер, допустимый уровнем служб эластичного пула «%.*ls». Максимальный размер базы данных превышает максимальный размер, допустимый уровнем служб эластичного пула. | Укажите максимальный размер базы данных, который находится в пределах ограничений на максимальный размер, допустимый уровнем служб эластичного пула. |
Эта проблема возникает из-за того, что учетная запись не имеет разрешения на доступ к базе данных master. Но по умолчанию SQL Server Management Studio (SSMS) пытается подключиться к базе данных master.
Для устранения этой проблемы выполните следующие действия:
-
На экране входа в SSMS выберите Параметры, а затем выберите Свойства соединения.
-
В поле Подключение к базе данных введите имя базы данных пользователя по умолчанию в качестве базы данных для входа по умолчанию, а затем нажмите кнопку подключить.
Проверьте, вызвана ли ошибка проблемой подключения.
Чтобы проверить, вызвана ли ошибка подключением, просмотрите трассировку стека для кадров, которые показывают вызовы, чтобы открыть подключение, как показано ниже (Обратите внимание на ссылку на класс SqlConnection ):
System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry)
at System.Data.SqlClient.SqlConnection.Open()
at AzureConnectionTest.Program.Main(String[] args)
ClientConnectionId:<Client connection ID>
Если исключение вызывается проблемами запросов, вы увидите стек вызовов, аналогичный приведенному ниже (Обратите внимание на ссылку на класс SqlCommand ). В этом случае Настройте запросы.
at System.Data.SqlClient.SqlCommand.ExecuteReader()
at AzureConnectionTest.Program.Main(String[] args)
ClientConnectionId:<Client ID>
Дополнительные рекомендации по точной настройке производительности см. в следующих ресурсах:
- Как поддерживать индексы и статистику Azure SQL
- Ручная настройка производительности запросов в Базе данных SQL Azure
- Мониторинг производительности базы данных SQL Azure с помощью динамических административных представлений
- Управление хранилищем запросов в Базе данных SQL Azure
Инструкции по устранению распространенных неполадок с подключением
-
Убедитесь, что протокол TCP/IP включен в качестве клиентского протокола на сервере приложений. Дополнительные сведения см. в разделе Настройка клиентских протоколов. На серверах приложений, на которых не установлены средства SQL, убедитесь, что протокол TCP/IP включен, запустив cliconfg.exe (служебная программа SQL Server Client Network).
-
Проверьте строку подключения приложения, чтобы убедиться, что она настроена правильно. Например, убедитесь, что в строке подключения указан правильный порт (1433) и полное имя сервера.
См. раздел Получение сведений о подключении. -
Попробуйте увеличить значение времени ожидания подключения. Мы рекомендуем использовать время ожидания подключения не менее 30 секунд.
-
Проверьте подключение между сервером приложений и базой данных SQL Azure с помощью SQL Server Management Studio (SSMS), файла UDL, проверки связи или Telnet. Дополнительные сведения см. в статьях Устранение неполадок подключения и Диагностика проблем с подключением.
[!NOTE]
На этапе устранения неполадок можно также проверить возможность подключения на другом клиентском компьютере. -
Рекомендуется убедиться в том, что логика повторных попыток выполнена. Дополнительные сведения о логике повторных попыток см. в разделе Устранение временных сбоев и ошибок подключения к базе данных SQL.
Если эти действия не помогли устранить проблему, попробуйте получить дополнительные данные и обратитесь в службу поддержки. Если приложение является облачной службой, включите ведение журнала. Этот шаг возвращает метку времени ошибки в формате UTC. Кроме того, база данных SQL возвращает идентификатор трассировки. Эти сведения могут использовать службы поддержки пользователей Майкрософт .
Дополнительные сведения о включении ведения журнала см. в статье Включение ведения журнала диагностики для приложений в службе приложений Azure.
Дальнейшие действия
- Архитектура подключений к Базе данных SQL Azure
- Управление доступом к сети для базы данных SQL Azure и Azure синапсе Analytics
As a Microsoft Dynamics CRM partner, we sometimes have to import a customer database into our internal development environment. If the customer uses a language other than English in their Microsoft SQL server system, the following error may occur during import, shortly after the start of the Dynamics CRM Import Wizard:
Error| Import Organization (Name= , Id= ) failed with Exception:
System.Data.SqlClient.SqlException (0x80131904): The login already has an account under a different user name.
Step-by-step: how to solve error 0x80131904 in the Import Organization Wizard
To solve this problem, call up the Microsoft SQL Management Studio within the corresponding database server. There, you can expand the organization database *_MSCRM to the database user level.
In our example (German source system, English destination system), we have to delete the login “NT-AUTORITÄTNETZWERKDIENST“ for Dynamics CRM to be able to import the organization. In other language versions, delete the equivalent login.
If you delete the user, you also have to delete the connected schema.
Subsequently, you can import the database into the Dynamics CRM system without problems. The deleted login will be created anew with the English name “NT AUTHORITYNETWORK SERVICE“.
If you’re looking to fix the KB2720171 error message when you run an SSIS package in the SQL server, you’ll find help here.