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

MS SQL Server Discussion :

Accès à SQL Server à partir de ASP.Net


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 35
    Points : 30
    Points
    30
    Par défaut Accès à SQL Server à partir de ASP.Net
    Bonjour
    J'ai installé 'SQL Server Express Edition' avec son outil de gestion 'SQL Server Management Studio'.J'ai développé une application ASP.Net dans 'Visual Web Dev' à partir de la quelle je veux me connecter à 'SQL Server' et récupérer des données, mais quand je lance ma page dans 'Visual Web dev' ou à partir de mon navigateur IE je reçois le message d'erreur de compilation ASP.Net suivant : 'Login failed for the user NomServeur/ASP.Net'.J'ai ensuite utilsé l'outil 'Sql Server Management Studio' pour donner les permissions de lecture et d'ecriture à l'utilisateur ASP.Net dans la base de données mais rien n'y fait je reçois toujours le même message d'erreur
    Toute aide serait la bien venue.Merci

  2. #2
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 7
    Points
    7
    Par défaut
    Salut,

    Malheureusement tu n'es pas le seul avec ce type de problème, je galère personnellement depuis plusieurs semaines avec et d'autres l'ont également, MS n'a visiblement pas assuré sur ce point...

    J'ai néanmoins trouvé quelques pistes (qui n'ont pas fonctionnées pour moi mais qui peut-être marcheront pour toi) sur les forums de MS ici.

    J'ai moi-même posté cela sur les forums MS sans résultat interessant et je poste aujourd'hui ce nouveau thread en espèrant avoir plus de réponses.
    J'ai en effet pu contourner le problème pour mes propres bases de données mais par pour ASPNETDB.MDF qui est automatiquement créée par VS lorsque l'on utilise les nouvelles fonctions liées au Login ou au Webparts.

    Lis ces différents threads afin de voir si cela peut te mettre sur une piste et si toi ou quelqu'un d'autre trouve une solution valable je suis bien entendu preneur !!!

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 766
    Points : 52 563
    Points
    52 563
    Billets dans le blog
    5
    Par défaut
    tout comme XP SP 2, la sécurité de MS SQL Server 2005 est fermée... que ce soit pour la version express ou entreprise...
    Autrement dit il faut "ouvrir" la sécurité de MS SQL Server SCIEMENT pour pouvoir l'attaquer.
    Pour cela vous pouvez utiliser l'outil "surface area configuration" et ouvrir les connexion distantes (ASP étant considéré comme un client distant).
    Vous devez pour cela redémarrer SQL Server.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    Pour OursRêveur:
    J'ai visité les forums que tu as cité.J'ai particulièrement suivi les démarches qui consistaient à créer l'utilisateur 'xxx\ASPNet' et à lui accorder l'autorisation de se connecter.Sans succès, mon application ne se lance ni à partir de 'Visual Web Dev' ni à partir de 'IE' via IIS, je reçoit toujours le même message d'erreur
    J'ai tenté de me connecter à la base de données à partir de 'Visual Basic 6.0' en utilisant 'SQLOLEDB' et l'authentification Windows et par une gestion d'erreur je reçois le message d'erreur 'Ce serveur n'existe pas ou son accès est refusé' et quand j'utilise l'authentification SQL Server avec le nom et le mot de passe d'un utilisateur que j'ai crée via l'outil 'Management studio Express' je reçois à peu près le message d'erreur 'The user User_Name is not trusted for Sql Server'
    Pour SQLpro
    j'ai activé la connection à distance via TCP/IP et redémarré le serveur
    j'ai toujours le même problème
    Merci à tous et à +

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2006
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 14
    Points : 7
    Points
    7
    Par défaut Une solution
    Salut,

    Bon, j'ai finalement réussi à contourner le problème donc je vous fait part de ma trouvaille.

    Sous VS, des chaînes de connexion sont automatiquement générées dans le fichier web.config sous une forme de ce style:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <add name="ConnectionString"
    connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\myDatabaseName.mdf;Integrated Security=True;User Instance=True"
    providerName="System.Data.SqlClient"/>
    Une fois fois le site publié sur le serveur de production, l'appel à une page utilisant ConnectionString envoi l'erreur 'Login failed for the user NomServeur/ASP.Net'.

    Pour palier au problème voici une solution (qui fonctionne dans mon cas).

    1) Il faut modifier la chaîne de connexion (dans le web.config sur le serveur de production) et remplacer ce qui ce trouve en gras de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <add name="ConnectionString"
    connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\myDatabaseName.mdf;User ID=sa;Password=mySAPassword;database=myDatabaseName"
    providerName="System.Data.SqlClient"/>
    2) Sur le serveur de production, et grâce à SQL Server Management Studio Express il faut attacher manuellement myDatabaseName.mdf en prenant soin de modifier le champ Attaché en tant que... pour qu'il ne reste que myDatabaseName (et plus tout le chemin physique d'accès au fichier) puis détacher la base de données.

    Ce coup-ci l'application fonctionne correctement.

    Si comme moi vous utilisez les fonctions de Login/Webparts intégrées, une base nommée ASPNETDB.MDF est automatiquement créée par VS.
    Mais sa chaîne de connexion n'apparaît pas dans le web.config, elle se trouve en fait dans le fichier machine.config qui se trouve dans le répertoire <windows>\Microsoft.Net\Framework\v2.0.50727\Config.
    Sur la machine de production, il faut alors chercher la chaîne de connexion (qui se nomme LocalSqlServer) puis la supprimer (ou la mettre en commentaires) et recréer la même chaîne de connexion selon le format en 1) en lui redonnant le même nom (LocalSqlServer).
    Et également faire la manipulation en 2) pour la base ASPNETDB.MDF

    Et voilà, l'application fonctionne maintenant en production y compris si une base ASPNETDB existe.

    Ceci étant cette solution ne me satisfait qu'à moitié car elle contourne (limite ?) la sécurité. Si quelqu'un sait comment résoudre le problème sans altérer les chaînes de connexion initiales sur le plan de la sécurité je suis preneur de la solution.

    - Pourrait-on par exemple créer le compte ASPNET et/ou des droits pour ce compte dynamiquement au lancement de l'application (éventuellement dans la chaîne de connexion) ?
    En tous cas comme Abdou j'avais déjà essayé de créer le compte ASPNET manuellement avec SQL Server Management Studio Express et cela n'a rien donné...

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2006
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 35
    Points : 30
    Points
    30
    Par défaut
    Merci OursRêveur
    Je ne maîtrise pas encore très bien les outils de développement ASP.Net et j'aimerais bien avoir quelques eclairssissements si tu as un peu de temps.
    La base ASPNetDB.mdf se trouve bien dans le dossier App_Data de l'application, la chaîne de connection LocaSqlServer(qu'on peut configurer dans la page de proprités du site Web de la console de IIS sous l'onglet ASP.Net 'Edit Configuration' onglet 'General')ne se trouve pas dans le fichier Web.Config de l'application(est-ce normal?), par contre je la trouve dans le fichier machine.config que tu as mentionné alors comme tu as dis je dois attacher la base ASPNet.DB à mon SQL Server avec son nom et nom son chemin physique dans SQL Management Studio.Alors question : Comment utiliser cette chaîne de connection dans mon application?
    Merci encore .A+

  7. #7
    Nouveau membre du Club
    Inscrit en
    Mars 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2007
    Messages : 59
    Points : 32
    Points
    32
    Par défaut
    Bonjour a vous.

    Voila j'avais le meme probleme et j'ai suivi exactement les conseils donnes. Cela m'a regle mon probleme (je vous en remercie bcp) mais je suis tombe sur un autre probleme directement apres le 1er. Voici l'erreur :
    The file '/Customer/Main.aspx' has not been pre-compiled, and cannot be requested.
    J'ai deja fait pas mal de recherche, mais je ne suis jamais tombe sur la bonne.
    Une des solutions que j'ai trouve concernait une dll manquante dans le dossier bin. J'ai donc copie toutes les dll de mon dossier bin avant publication dans mon dossier bin apres publication sur le serveur mais cela n'a pas resolu mon probleme malheureusement.

    Pourriez-vous m'aider SVP ???

    Merci bcp d'avance.

    PS: desole pour les fautes d'accents mais je travail sur un clavier qwerty.

Discussions similaires

  1. Réponses: 11
    Dernier message: 13/03/2013, 00h55
  2. Réponses: 2
    Dernier message: 18/11/2008, 22h56
  3. Réponses: 9
    Dernier message: 28/10/2008, 19h05
  4. Problème connexion sql server 2005 avec asp.net en C#
    Par PKO06 dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 29/05/2007, 18h46
  5. Connection à une base SQL Server 2005 avec ASP.NET en C#
    Par LaDeveloppeuse dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 24/05/2007, 10h29

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