IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[VWD 2008 Express] Problème de connexion à la base (SQL Server) pendant l'authentification


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 25
    Points : 17
    Points
    17
    Par défaut [VWD 2008 Express] Problème de connexion à la base (SQL Server) pendant l'authentification
    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 :
    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.
    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.

    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 :

    É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()
    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à ?
    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

  2. #2
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 25
    Points : 17
    Points
    17
    Par défaut
    Je ne sais pas si cela peut être utile, mais dans le doute... :

    Lorsque j'essaye malgré tout de générer mon site web, la page d'accueil se génère bien. Je clique alors dans le menu sur le lien vers une page qui nécessite une authentification, j'arrive sur ma page de login sans souci. Je tape mon login et mot de passe (user créé via l'outil Administration de site Web).

    Voici l'erreur que j'obtiens ensuite :

    Échec d'instance.
    Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.

    Erreur lors de la création automatique du fichier de base de données SQLExpress:

    La chaîne de connexion utilise un emplacement de base de données dans le répertoire App_Data des applications pour spécifier une instance SQL Server Express locale. Ayant déterminé qu'elle n'existait pas, le fournisseur a tenté de créer automatiquement la base de données des services d'application. Les conditions de configuration requises suivantes sont nécessaires pour vérifier correctement l'existence de la base de données des services d'application et créer automatiquement cette base de données :

    1. Si le répertoire des applications App_Data n'existe pas déjà, le compte de serveur Web doit bénéficier de droits d'accès en lecture et en écriture au répertoire des applications. Cette condition est nécessaire puisque le compte de serveur Web créera automatiquement le répertoire App_Data s'il n'existe pas déjà.
    2. Si le répertoire App_Data des applications existe déjà, le compte de serveur Web a seulement besoin d'un accès en lecture et en écriture à ce répertoire. Cette condition est nécessaire puisque le compte de serveur Web tente de vérifier si la base de données SQL Server Express existe déjà dans le répertoire App_Data des applications. Si l'accès en lecture au répertoire App_Data du compte de serveur Web est supprimé, le fournisseur ne pourra pas correctement déterminer si la base de données SQL Server Express existe déjà. Toute tentative du fournisseur pour créer un double d'une base de données existante se soldera par une erreur. L'accès en écriture est requis, car les informations d'identification des comptes de serveur Web sont utilisées lors de la création de la base de données.
    3. SQL Server Express doit être installé sur l'ordinateur.
    4. L'identité de processus du compte de serveur Web doit avoir un profil utilisateur local. Consultez le fichier readme pour plus d'informations sur la création d'un profil utilisateur local pour les comptes d'ordinateur et les comptes de domaine.



    Erreur source:

    Une exception non gérée s'est produite lors de l'exécution de la demande Web actuelle. Les informations relatives à l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.

    Trace de la pile:

    [InvalidOperationException: Échec d'instance.]
    System.Data.SqlClient.TdsParser.Connect(ServerInfo serverInfo, SqlInternalConnectionTds connHandler, Boolean ignoreSniOpenTimeout, Int64 timerExpire, Boolean encrypt, Boolean trustServerCert, Boolean integratedSecurity, SqlConnection owningObject) +4862691
    System.Data.SqlClient.SqlInternalConnectionTds.AttemptOneLogin(ServerInfo serverInfo, String newPassword, Boolean ignoreSniOpenTimeout, Int64 timerExpire, SqlConnection owningObject) +90
    System.Data.SqlClient.SqlInternalConnectionTds.LoginNoFailover(String host, String newPassword, Boolean redirectedUserInstance, SqlConnection owningObject, SqlConnectionString connectionOptions, Int64 timerStart) +257
    System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance) +221
    System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance) +189
    System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection) +4863459
    System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup) +29
    System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) +4865788
    System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +117
    System.Data.SqlClient.SqlConnection.Open() +122
    System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString) +82

    [HttpException (0x80004005): Impossible d'établir une connexion à une base de données SQL Server.]
    System.Web.Management.SqlServices.GetSqlConnection(String server, String user, String password, Boolean trusted, String connectionString) +137
    System.Web.Management.SqlServices.SetupApplicationServices(String server, String user, String password, Boolean trusted, String connectionString, String database, String dbFileName, SqlFeatures features, Boolean install) +94
    System.Web.Management.SqlServices.Install(String database, String dbFileName, String connectionString) +25
    System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile(String fullFileName, String dataDir, String connectionString) +395


    Informations sur la version : Version Microsoft .NET Framework :2.0.50727.4927; Version ASP.NET :2.0.50727.4927

Discussions similaires

  1. Problème de génération de base SQL Server 2008
    Par NeoKript dans le forum PowerAMC
    Réponses: 14
    Dernier message: 13/09/2010, 13h41
  2. Problème de connexion à une BDD SQL SERVER 2008
    Par idris dans le forum Accès aux données
    Réponses: 1
    Dernier message: 08/09/2010, 16h37
  3. Réponses: 1
    Dernier message: 30/07/2010, 12h17
  4. Problème de connexion avec BDD sql server 2008
    Par Kalion dans le forum VBA Access
    Réponses: 1
    Dernier message: 17/03/2009, 09h48
  5. Problème de connexion à une base SQL Server 2005
    Par tatayecorp dans le forum ASP
    Réponses: 2
    Dernier message: 19/04/2008, 00h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo