0

Donc, j'essaie de créer une application de formulaire Web ASP.NET en utilisant C# (juste pour noter, Je suis un débutant absolu avec ASP et C#). Je suivais le tutoriel situé ici:Une exception de type 'System.Data.SqlClient.SqlException' s'est produite dans mscorlib.dll mais n'a pas été traitée dans le code utilisateur

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

J'utilise Visual Studio 2013 avec SQL Server 2012 express LocalDB sur cette machine Windows 7 (64 bits). Cependant, quand je suis à l'école, j'utilise Visual Studio 2015 (avec la même version de SQL Server) sur une machine Windows 10 (64 bits).

Maintenant, je codais ce tutoriel situé ci-dessus sur VS2013, et après avoir construit et exécuté le programme, il fonctionnait. Après le portage sur VS2015 et l'exécution du programme, je ne peux pas l'exécuter à nouveau sur VS2013. Au lieu de cela, je rencontre une erreur.

Voici le texte intégral d'erreur:

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.) 

Voici le bloc de code d'erreur de la source (il se produit spécifiquement à la ligne 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: 

Voici la trace de la pile qui affiche sur la page d'erreur:

[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 

Chaque fois que je commente des lignes de code qui utilisent la variable roleMgr, le pplication va s'exécuter, mais je rencontre la même erreur SqlException lorsque j'essaie de tester le système de connexion. Je pensais que cela pourrait être corrigé via mon fichier Web.Config. Voici la partie du code que j'ai vu (après quelques recherches Google) que j'imagine serait pertinent:

<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> 

Utilisation de l'Explorateur de serveur, je peux interroger la base Starlane, mais pas la base de données par défaut de connexion.

Quoi qu'il en soit, j'espère avoir fourni suffisamment d'informations pour que quelqu'un puisse m'aider à résoudre ce problème. Y a-t-il quelque chose qui changerait dans le code ou dans les configurations lors de l'exécution de 2015 à 2013 qui causerait ce problème?

Merci beaucoup d'avance.

+0

Vous êtes confondu avec les versions vs, cela n'a rien à voir avec l'exception SQL. * En utilisant Server Explorer, je peux interroger la base de données Starlane, mais pas la base de données de connexion par défaut. * - Si vous ne pouvez pas voir la base de données, comment voulez-vous que la chaîne de connexion fonctionne? Google: ** erreur: 50 - Une erreur d'exécution de la base de données locale s'est produite. L'instance LocalDB spécifiée n'existe pas. ** –

+0

Merci pour l'aide. Je pensais trop à la version, et cela m'a définitivement conduit dans la mauvaise direction. J'aurais dû faire des recherches plus avant de poster comme un autre poste a aidé: https://stackoverflow.com/questions/26007913/the-specified-localdb-instance-does-not-exist – pandorachaos

Répondre

0

Vous devez vérifier si l'instance existe ou non. Essayez d'exécuter sqllocaldb.exe via l'invite cmd.

utilisez "sqllocaldb i" pour répertorier toutes les instances LocalDB. utilisez "sqllocaldb create instance name" pour créer une nouvelle instance. utilisez "sqllocaldb start instance name" pour le démarrer.

+0

Donc, ce que j'ai fait dans complet était regarder les instances, et v11.0 a été arrêté, alors je l'ai commencé. J'ai également créé l'instance MSSQLLocalDB et l'ai démarrée.Ensuite, mon projet a donné l'erreur indiquant que les bases de données étaient déjà créées, donc je les ai déplacées hors du dossier App_Data (j'aurais pu les supprimer car elles n'ont pas beaucoup changé), et le projet a créé de nouvelles bases de données dans le dossier. ça a marché! Merci beaucoup pour l'aide. – pandorachaos