J'ai un site Web J'utilise Lorsque je vous connecte, le contrôle de la connexion " ... et j'attends ... < / p> et puis je reçois une erreur me dise que cela a été expérimenté une erreur de base de base de données " pourquoi dans le monde essaie-t-il soudainement de Créer un fichier SQL Server Express? Pourquoi est-ce qu'il ignore soudainement ma chaîne de connexion? P> Un indice impair: juste avant la dernière ligne de l'événement "Onloggedin", je mets dans ce: p> EDIT: Argh, parfois em> il attend quand je Test Blntest. D'autres fois, il signale immédiatement la valeur comme "FALSE". P> P> ASP.NET V2.0 CODE> Site Web (pas d'application Web) où le répertoire racine est public, mais le sous-répertoire "admin" nécessite une authentification. Tout sur la configuration est très générique - j'ai utilisé une chaîne de connexion définie dans la racine web.config et le fournisseur Standard
aspnetsqlMembershipProvider code> et j'utilise le contrôle de connexion ASP.NET.
Le Web.config dans le répertoire d'administration Spécifie que l'utilisateur doit avoir le rôle "Admin". SQL Server 2008 code> et ma chaîne de connexion est bonne; Chaque page de niveau de racine est entraînée par des données et elles fonctionnent tous bien.
La configuration du fournisseur semble goo. P> Onloggedin code>" Feux d'événement "
La dernière ligne de ce code d'événement me redirige vers mon admin / par défaut.aspx code> page. Mon point d'arrêt dans "Onloggedin" montre que tout va bien jusqu'à la redirection de mon répertoire administratif ... et ... P>
sqlexpress" / code> " p>
blntest = true code>.
Ce qui se passe, c'est que le processus frappe cette ligne ... et l'attend ... Et finit par me dire qu'il ne peut pas accéder à la base de données SQL Server Express. Il semble que toute référence (soit dans mon code, soit dans les coulisses) de déterminer le rôle de l'utilisateur, appelle la mauvaise base de données. P>
3 Réponses :
Lorsque vous spécifiez l'option code> jointdbfilename code> dans la chaîne de connexion, vous demandez en réalité une instance SQL Server à provisionnée à l'heure tout-juste-in-thermique, alias "l'instance utilisateur". Cette instance est créée en demandant à l'instance "Master" (la. \ SQlexPress Instance) de fournir une instance enfant, qui implique de copier le maître / modèle / MSDB dans votre profil, lancez un nouveau processus SQL Server sous votre compte configuré pour utiliser le Master / Modèle / MSDB fraîchement copié, puis demandez à cet instance «enfant» pour joindre le «fichier» spécifié comme une nouvelle base de données. Les détails sont expliqués dans SQL Server 2005 Edition Express Edition Instances < / a>. p>
Le processus de création d'une instance enfant est extrêmement fragile et lorsqu'il brise les résultats d'appel de DB éventuellement dans une erreur de temps d'arrêt lors de l'ouverture de la connexion. Dans votre cas, il semble que le processus se casse dans certains cas (lorsque vous atteignez la partie protégée du site). Pourquoi il se casse, est très difficile à deviner sans informations appropriées. Regardez les problèmes communs forts> forts> dans l'article lié et voyez si cela s'applique à vous. Vérifiez également le journal des événements système pour n'importe quel message pourquoi les instances enfants ne peuvent pas démarrer ou ne peuvent pas ouvrir le fichier MDF. Notez qu'une erreur commune consiste à demander le même fichier physique avec attachdbfilename sous différentes informations de passe: chaque identification démarrera sa propre instance «enfant» et que seul le premier réussira à joindre la base de données souhaitée. P>
Comme je l'ai dit, j'utilise SQL Server 2008, pas un fichier MDF. Ma chaîne de connexion n'a pas d'attachdbfilename. Source de données = myserver; Catalogue initial = WebSitéb; ID utilisateur = myuserid; mot de passe = myPassword;
Zhaph a déjà expliqué pourquoi le LocalSqlServer est utilisé (c'est-à-dire une instance utilisateur express)
Seulement parce que j'ai eu tous les détails des commentaires;)
Merci Zhaphe, oui, tu as cloué et m'a rappelé de garder la machine.Config en tête. Et Remus, concernant le commentaire que Zhaph "Déjà" a expliqué le problème express, l'ordre des commentaires était: Mon poste d'origine, la question de Nick sur le rôle des propriétés de rôle, ma réponse à Nick, votre mention de votre mention d'express, puis de la réponse gagnante de Zhaphe. Je n'essayais pas d'essayer de travailler, j'essayais de l'éviter complètement.
@Tom: Sry Tom, je ne voulais pas dire «déjà» pour être dérogatoire de quelque manière que ce soit. Je voulais juste dire que je peux garder mon commentaire court et ne pas entrer dans les détails.
@Tom Hehe - Vous utiliserez SQL Server, mais ASP.NET a déjà fait des plans!
Selon votre commentaire, il semble que vous n'ayez pas explicitement configuré un fournisseur de rôle pour votre site.
Si tout ce qui est dans votre web.config est le suivant: p>
<roleManager enabled="true"> <providers> <clear /> <add name="AspNetSqlRoleProvider" connectionStringName="YourConnectionStringName" applicationName="/" type="System.Web.Security.SqlRoleProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/> </providers> </roleManager>
Merci, je sais que cette question est très ancienne mais c'était aussi une grande aide pour moi. Une question, je sais avoir
Parce que vous pouvez avoir des différents (par exemple, vous voudrez peut-être un fournisseur de rôle personnalisé qui prend en charge les rôles hérités, alors que vous êtes satisfait du fournisseur de membres par défaut). De plus, si vous regardez de près, vous verrez qu'ils sont différents: on ajoute le fournisseur SQL Adhésion B>, tandis que l'autre ajout du rôle SQL Rôle B>.
Il est utile de savoir que la configuration
J'ai eu le même problème qui était dû aux services pour SQL Server étant désactivé. p>
Vérifiez sous Services.MSC pour voir si le service SQLEXPress fonctionne. Si c'est chèque pour voir si SQL Express est installé sur votre machine P>
Quelle est la chaîne de connexion pour votre rôle proviseur? Est-ce la même chose que votre authentificationProvider?
Cette partie du web.config est simplement cette ...