简体   繁体   中英

An exception of type 'System.Data.SqlClient.SqlException' occurred in mscorlib.dll but was not handled in user code

So, I'm trying to make an ASP.NET Web Form Application using C# (just to note, I am an absolute beginner with ASP and C#). I was following the tutorial located here:

https://docs.microsoft.com/en-us/aspnet/web-forms/overview/getting-started/getting-started-with-aspnet-45-web-forms/membership-and-administration

I am using Visual Studio 2013 with SQL Server 2012 Express LocalDB on this Windows 7 (64-bit) machine. However, when I am at school, I use Visual Studio 2015 (with the same SQL Server version) on a Windows 10 (64-bit) machine.

Now, I was coding this tutorial located above on VS2013, and after building and running the program, it was working. After porting it over to VS2015 and running the program, I cannot run it again on VS2013. Instead, I encounter an error.

Here is the full error text:

An exception of type 'System.Data.SqlClient.SqlException' occurred in 
mscorlib.dll but was not handled in user code

Additional information: 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: 50 - Local Database Runtime error occurred. The 
specified LocalDB instance does not exist.)

Here is the Source Error code block (it specifically occurs at line 24):

Line 22:             var roleMgr = new RoleManager<IdentityRole>(roleStore);
Line 23: 
Line 24:             if (!roleMgr.RoleExists("canEdit"))
Line 25:                 IdRoleResult = roleMgr.Create(new IdentityRole { Name = "canEdit" });
Line 26: 

Here is the Stack Trace that displays on the error page:

[SqlException (0x80131904): 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: 50 - Local Database Runtime error occurred. The specified LocalDB instance does not exist.
)]
   System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, SqlCredential credential, Object providerInfo, String newPassword, SecureString newSecurePassword, Boolean redirectedUserInstance, SqlConnectionString userConnectionOptions, SessionData reconnectSessionData, DbConnectionPool pool, String accessToken, Boolean applyTransientFaultHandling) +821
   System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions) +332
   System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnectionPool pool, DbConnection owningObject, DbConnectionOptions options, DbConnectionPoolKey poolKey, DbConnectionOptions userOptions) +38
   System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +699
   System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject, DbConnectionOptions userOptions, DbConnectionInternal oldConnection) +89
   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, UInt32 waitForMultipleObjectsTimeout, Boolean allowCreate, Boolean onlyOneCheckConnection, DbConnectionOptions userOptions, DbConnectionInternal& connection) +426
   System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal& connection) +78
   System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) +191
   System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +154
   System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions) +21
   System.Data.SqlClient.SqlConnection.TryOpenInner(TaskCompletionSource`1 retry) +90
   System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry) +217
   System.Data.SqlClient.SqlConnection.Open() +96
   System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.<Open>b__36(DbConnection t, DbConnectionInterceptionContext c) +36
   System.Data.Entity.Infrastructure.Interception.InternalDispatcher`1.Dispatch(TTarget target, Action`2 operation, TInterceptionContext interceptionContext, Action`3 executing, Action`3 executed) +138
   System.Data.Entity.Infrastructure.Interception.DbConnectionDispatcher.Open(DbConnection connection, DbInterceptionContext interceptionContext) +477
   System.Data.Entity.SqlServer.<>c__DisplayClass33.<UsingConnection>b__32() +520
   System.Data.Entity.SqlServer.<>c__DisplayClass1.<Execute>b__0() +34
   System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Func`1 operation) +251
   System.Data.Entity.SqlServer.DefaultSqlExecutionStrategy.Execute(Action operation) +196
   System.Data.Entity.SqlServer.SqlProviderServices.UsingConnection(DbConnection sqlConnection, Action`1 act) +276
   System.Data.Entity.SqlServer.SqlProviderServices.UsingMasterConnection(DbConnection sqlConnection, Action`1 act) +545
   System.Data.Entity.SqlServer.SqlProviderServices.CreateDatabaseFromScript(Nullable`1 commandTimeout, DbConnection sqlConnection, String createDatabaseScript) +151
   System.Data.Entity.SqlServer.SqlProviderServices.DbCreateDatabase(DbConnection connection, Nullable`1 commandTimeout, StoreItemCollection storeItemCollection) +287
   System.Data.Entity.Core.Common.DbProviderServices.CreateDatabase(DbConnection connection, Nullable`1 commandTimeout, StoreItemCollection storeItemCollection) +111
   System.Data.Entity.Core.Objects.ObjectContext.CreateDatabase() +236
   System.Data.Entity.Migrations.Utilities.DatabaseCreator.Create(DbConnection connection) +143
   System.Data.Entity.Migrations.DbMigrator.EnsureDatabaseExists(Action mustSucceedToKeepDatabase) +207
   System.Data.Entity.Migrations.Infrastructure.MigratorBase.EnsureDatabaseExists(Action mustSucceedToKeepDatabase) +42
   System.Data.Entity.Migrations.DbMigrator.Update(String targetMigration) +136
   System.Data.Entity.Migrations.Infrastructure.MigratorBase.Update() +33
   System.Data.Entity.Internal.DatabaseCreator.CreateDatabase(InternalContext internalContext, Func`3 createMigrator, ObjectContext objectContext) +175
   System.Data.Entity.Internal.InternalContext.CreateDatabase(ObjectContext objectContext, DatabaseExistenceState existenceState) +150
   System.Data.Entity.Database.Create(DatabaseExistenceState existenceState) +444
   System.Data.Entity.CreateDatabaseIfNotExists`1.InitializeDatabase(TContext context) +290
   System.Data.Entity.Internal.<>c__DisplayClassf`1.<CreateInitializationAction>b__e() +165
   System.Data.Entity.Internal.InternalContext.PerformInitializationAction(Action action) +110
   System.Data.Entity.Internal.InternalContext.PerformDatabaseInitialization() +660
   System.Data.Entity.Internal.LazyInternalContext.<InitializeDatabase>b__4(InternalContext c) +31
   System.Data.Entity.Internal.RetryAction`1.PerformAction(TInput input) +143
   System.Data.Entity.Internal.LazyInternalContext.InitializeDatabaseAction(Action`1 action) +292
   System.Data.Entity.Internal.LazyInternalContext.InitializeDatabase() +123
   System.Data.Entity.Internal.InternalContext.Initialize() +42
   System.Data.Entity.Internal.InternalContext.GetEntitySetAndBaseTypeForType(Type entityType) +39
   System.Data.Entity.Internal.Linq.InternalSet`1.Initialize() +137
   System.Data.Entity.Internal.Linq.InternalSet`1.get_InternalContext() +38
   System.Data.Entity.Infrastructure.DbQuery`1.System.Linq.IQueryable.get_Provider() +99
   System.Data.Entity.QueryableExtensions.FirstOrDefaultAsync(IQueryable`1 source, Expression`1 predicate, CancellationToken cancellationToken) +197
   System.Data.Entity.QueryableExtensions.FirstOrDefaultAsync(IQueryable`1 source, Expression`1 predicate) +233
   Microsoft.AspNet.Identity.EntityFramework.RoleStore`3.FindByNameAsync(String roleName) +1120
   Microsoft.AspNet.Identity.<FindByNameAsync>d__13.MoveNext() +278
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
   System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() +28
   Microsoft.AspNet.Identity.CultureAwaiter`1.GetResult() +123
   Microsoft.AspNet.Identity.<RoleExistsAsync>d__d.MoveNext() +612
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
   System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() +28
   Microsoft.AspNet.Identity.AsyncHelper.RunSync(Func`1 func) +244
   Microsoft.AspNet.Identity.RoleManagerExtensions.RoleExists(RoleManager`2 manager, String roleName) +241
   Starlane.Logic.RoleActions.AddUserAndRole() in F:\WEBENGINEERING\Starlane\Starlane\Logic\RoleActions.cs:24
   Starlane.Global.Application_Start(Object sender, EventArgs e) in F:\WEBENGINEERING\Starlane\Starlane\Global.asax.cs:28

[HttpException (0x80004005): 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: 50 - Local Database Runtime error occurred. The specified LocalDB instance does not exist.
)]
   System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context, HttpApplication app) +10063289
   System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext, HttpContext context, MethodInfo[] handlers) +118
   System.Web.HttpApplication.InitSpecial(HttpApplicationState state, MethodInfo[] handlers, IntPtr appContext, HttpContext context) +173
   System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext, HttpContext context) +336
   System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext) +296

[HttpException (0x80004005): 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: 50 - Local Database Runtime error occurred. The specified LocalDB instance does not exist.
)]
   System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +10044576
   System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +95
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +254

Whenever I comment out any lines of code that utilize the roleMgr var, then the application will run, but I encounter the same SqlException error when I try to test the login system. I was thinking that this could be corrected via my Web.Config file. Here is the portion of code I saw (after some Google research) that I imagine would be relevant:

<connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\aspnet-Starlane-20170802095040.mdf;Initial Catalog=aspnet-Starlane-20170802095040;Integrated Security=True" providerName="System.Data.SqlClient"/>
    <add name="Starlane" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\starlane.mdf;Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>

Using Server Explorer, I can query the Starlane database, but not the Default Connection database.

Anyway, I hope I provided enough information so that maybe someone would be able to help me solve this issue. Is there anything that would change in code or any configurations when running from 2015 to 2013 that would cause this issue?

Thank you so much in advance.

You need to check the instance exist or not. Try to run the sqllocaldb.exe via cmd prompt.

use "sqllocaldb i " to list all LocalDB instances. use "sqllocaldb create instance name" to create new instance. use "sqllocaldb start instance name" to start it.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM