Bonjour,
Je débute en ASP.NET et avec Visual Web Developer Studio 2008 Express.
J'ai essayé de mettre en place une authentification par formulaire, en utilisant l'outil "login".
Dans le répertoire App_Data, un fichier de données SQL Server, aspnetdb.mdf, s'est créé automatiquement.
Dans l'outil Administration de site Web (dans VWD, menu Site Web > Configuration ASP.NET), dans l'onglet Fournisseur, j'ai cliqué sur "Sélectionnez un fournisseur unique pour toutes les données de gestion de site", et sélectionné le seul fournisseur possible, AspNetSqlProvider.
À côté de celui-ci, il y a un lien "Test", qui me renvoie ce message lorsque je clique dessus :Je ne saisis pas trop à quoi sert le fichier aspnetdb.mdf créé dans App_Data du coup. Je pensais que l'application allait utiliser cette base pour les données de l'authentification. D'ailleurs, quand je crée un user à partir de l'outil d'Administration de site Web, celui-ci apparaît dans la table aspnet_Users de la base ASPNETDB.Impossible d'établir une connexion avec la base de données.
Si vous n'avez pas encore créé la base de données SQL Server, fermez l'outil Administration de site Web, utilisez l'utilitaire de ligne de commande aspnet_regsql pour créer et configurer la base de données, puis retournez dans cet outil pour définir le fournisseur.
Dans le doute, je lance donc aspnet_regsql, qui me propose de créer une base de données SQL Server pour les services d'applications ASP.NET. Je suis les étapes en laissant les valeurs par défaut, et voici le message d'erreur que j'obtiens :
Je suis perdue, pourquoi le test du fournisseur me demande-t-il de créer une base de données, qui, je pense, existe déjà ?Échec de l'installation.
Exception*:
Impossible d'établir une connexion à une base de données SQL*Server.
----------------------------------------
Détails de l'échec
----------------------------------------
System.Web.HttpException: Impossible d'établir une connexion à une base de données SQL*Server. ---> System.Data.SqlClient.SqlException: Une erreur liée au réseau ou spécifique à l'instance s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou n'est pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. (provider: Fournisseur de canaux nommés, error: 40 - Impossible d'ouvrir une connexion à SQL Server)
à System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
à System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
à System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject)
à System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject)
à System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart)
à System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
à System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
à System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
à System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
à System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
à System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
à System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
à System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
à System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
à System.Data.SqlClient.SqlConnection.Open()
à System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString)
--- Fin de la trace de la pile d'exception interne ---
à System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString)
à System.Web.Management.SqlServices.SetupApplicationServices(String server, String user, String password, Boolean trusted, String connectionString, String database, String dbFileName, SqlFeatures features, Boolean install)
à System.Web.Management.SqlServices.Install(String database, SqlFeatures features, String connectionString)
à System.Web.Management.ConfirmPanel.Execute()
Si il n'existe pas, dans ce cas, pourquoi cette erreur en essayant de la créer avec aspnet_regsql ?
Merci beaucoup pour votre aide,
Sandra
Partager