Ein Versuch, eine automatisch benannte Datenbank für Datei ... database1.mdf anzuhängen, ist fehlgeschlagen
Ich erhalte die folgende Fehlermeldung beim Debuggen von meinem visual studio 2010 website:
Einen Versuch zum anfügen einer automatisch benannten Datenbank für die Datei C:\Users...\Desktop\Dpp2012New\App_Data\dppdatabase.mdf fehlgeschlagen. Eine Datenbank mit demselben Namen vorhanden ist, oder auf die angegebene Datei kann nicht geöffnet werden, oder es befindet sich auf einer UNC-Freigabe.
Beschreibung: Eine nicht behandelte Ausnahme ist aufgetreten während der Ausführung der aktuellen Webanforderung. Bitte überprüfen Sie die Stapelüberwachung für weitere Informationen über den Fehler und wo Sie Ihren Ursprung in den code.
Exception Details: System.Daten.SqlClient.SqlException: Ein Versuch zum anfügen einer automatisch benannten Datenbank für die Datei C:\Users...\Desktop\Dpp2012New\App_Data\dppdatabase.mdf fehlgeschlagen. Eine Datenbank mit demselben Namen vorhanden ist, oder auf die angegebene Datei kann nicht geöffnet werden, oder es befindet sich auf einer UNC-Freigabe.
Hier ist meine Verbindungs-string aus meiner web.config
:
<connectionStrings>
<add name="ApplicationServices"
connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient"/>
<add name="ConnectionString"
connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\dppdatabase.mdf;Integrated Security=SSPI"
providerName="System.Data.SqlClient"/>
</connectionStrings>
Und ich greifen Sie von meiner Internetpräsenz:
Dim connectionString As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
Der stacktrace zeigt die Fehler-Zeile wie:
Dim conn As New SqlConnection(connectionString)
Dim dr As SqlDataReader
conn.Open() 'This is the error line as per stacktrace
Habe ich die benötigten Berechtigungen für die oben genannten Ordner, also kann es nicht sein "oder auf die angegebene Datei kann nicht geöffnet werden" - Problem. Wenn wir uns all die Beiträge mit demselben Fehler in diesem forum, klar der Tiefgang dieser Fehler kann gefunden werden. Jedoch, keine der Lösungen löst mein Problem.
Einige der Ressourcen, die ich versucht habe sind:
- http://weblogs.asp.net/scottgu/archive/2005/08/25/423703.aspx
- http://blogs.msdn.com/b/webdevelopertips/archive/2010/05/06/tip-106-did-you-know-how-to-create-the-aspnetdb-mdf-file.aspx
- http://forums.asp.net/t/1033225.aspx
Ich warten sehnsüchtig auf eine Lösung.
InformationsquelleAutor der Frage rahulserver | 2012-09-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich hatte dieses problem auch und es war ein Schmerz. Ich konfigurierte mein connection string und es geschafft das problem zu lösen. In den connection-string habe ich ersetzt den Wert |DataDirectory|\dbfilename.mdf für AttachDbFilename Eigenschaft, mit dem Pfad zu der Datei. |DataDirectory| kann nur verwendet werden, wenn die Datenbankdatei im App_Data-Ordner innerhalb des gleichen Projekts.
So dass die änderung der AttachDbFilename-Eigenschaft auf den direkten Pfad der mdf-Datei, Fix mein Problem.
AttachDbFilename=C:\MyApp\App\DAL\db.mdf
Ich hoffe, das funktioniert für Sie.
InformationsquelleAutor der Antwort ray abu
Versuchen, erstellen Sie die Verbindungszeichenfolge wie folgt:
Es ist für mich arbeiten.
InformationsquelleAutor der Antwort user3198801
Ich hatte einen ähnlichen Fehler, aber mit einer Verbindung konfiguriert im code, anstatt einer config-Datei. Die Lösung war für mich einfach zu fügen Sie die "Initial Catalog=MyDatabase" Teil. Mein code sieht jetzt wie...
Lage ist, einen vollständigen Pfad zu einer mdb-Datei, die nicht existiert.
InformationsquelleAutor der Antwort flobadob
Einer der ärgerlichsten Fehler, die bei der Entwicklung von web-apps .Net. Ich hatte dieses Problem bei einem Projekt, das ich war dabei vor einem Jahr.
Das ist was für mich gearbeitet: ich habe mich angemeldet mit dem sa-Konto in SQL-Management-Studio und die Datenbank angefügt, um den Objekt-explorer (Datenbank -> Rechte Maustaste -> Anhängen).
Dann habe ich geöffnet habe, Sicherheit->Anmeldungen->[myWindowsUsername] und bearbeitet Benutzer-Registerkarte Zuordnungen geben dbowner Rechte, um die angehängten Datenbank.
Ich bin sicher, Sie können all diese Dinge tun, ohne Management Studio, mit Konsole Befehle, aber ich bin nicht so gut mit T-SQL und kann es nicht geben Ihnen Ratschläge.
InformationsquelleAutor der Antwort george.zakaryan
überprüfen Sie Ihre web-config-Datei, kann es mehr als eine Verbindungszeichenfolge mit demselben Namen
InformationsquelleAutor der Antwort Ravindra Bagale
Mir war eine EF code-first-Projekt, und es kommt auf, wenn die Datei gelöscht wurde. Läuft
Update-Database
von der Paket-Manager-Konsole macht die DB und alles in Ordnung ist.InformationsquelleAutor der Antwort Luke Puplett
Fehler wurde behoben, für mich, nachdem ich dies geändert
zu diesem
InformationsquelleAutor der Antwort Konstantinos Papakonstantinou
Habe ich geändert, die installation Ordner aus dem Programm-Dateien auf C gespeichert, während ich die Installation der app. dann ist mein problem gelöst ist
InformationsquelleAutor der Antwort smoothumut
naja, ich denke, Grund dafür ist, dass in Ihrem Datenbank-Verzeichnis, enthält .mdf-Datei, die den gleichen Namen hat. Also beste ist, geben Sie den vollständigen Pfad können Sie einfach ersetzen die AttachDbFilename. einfach Holen Sie sich den fullpath des Datenbank-Datei, und ordnen Sie es in den AttachDbFilename-das ist in app.config-Datei.
InformationsquelleAutor der Antwort dilantha111
In den meisten Fällen, die unit-test-Projekt ist getrennt von der Haupt-Projekt.
Dies bewirkt, dass die erzeugte Verbindungszeichenfolge ungültig zu sein, da es nicht gelingt, eine app_data-Ordner, wenn die db lokal auf die Lösung.
Können Sie ersetzen Sie einfach die |DataDirectory| - mit einem relativen Pfad zu deiner db in Ihrem Haupt-Projekt, wenn Sie eine Verbindung herstellen müssen, um es von Ihrem unit-test-Projekt.
InformationsquelleAutor der Antwort Vishav Premlall
Bitte überprüfen Sie den Pfad für die Datenbank in der Verbindungszeichenfolge. Ich habe die gleiche Fehlermeldung und ich fand später heraus, dass das problem ein falsch geschriebenes Weg.
InformationsquelleAutor der Antwort Albert M
InformationsquelleAutor der Antwort Radha
Ich habe versucht, mdf-Portabilität in meiner Bewerbung, also ich habe mit
mit nerdDinners, ich kann mich nicht erinnern, wo ich fand es, als
Dann kann ich mit der return-Typ als DbContext.
Hauptsache ich begegnete, war, dass GetCurrentDirectory() ruft die kompilierte Datei-Pfad, nicht die Projekt-Datei-Pfad, also die Bereitstellung sollte so eingestellt sein, GetCurrentDirectory und die mdf kopiert werden sollen, auf kompilieren, nicht auf die tatsächliche App_Data. Ihre mdf in Ihr Projekt und gehen Sie auf Eigenschaften. Legen Sie die Eigenschaft in Ausgabeverzeichnis kopieren.
InformationsquelleAutor der Antwort Stephen Himes
Ich hatte das gleiche problem mit EF. Der absolute Pfad Lösung gearbeitet. Aber es ist keine schöne Lösung wenn Sie möchten, um Ihr Programm an eine neue Position. Für mich war dies das problem.
.mdf
- Datei im Projekt-Ordner, irgendwann VS sync die beidenDateien
.mdf
Datei wurde nicht synchronisiert, in den Debug -Mein workaround:
.mdf
und.ldf
Datei in einem temp-Ordner.mdf
Datei in den Ordner des Projekts, nehmen Sie es.mdf
Datei wird angezeigt im debug-Ordner sowieOrdner
InformationsquelleAutor der Antwort Istvan Heckl
was ich bisher gefunden habe, um das problem zu lösen, wenn Sie mdf-Datei in der unten Weg, es würde gut funktionieren für visual studio.
Rechten Maustaste auf die Daten-Verbindung in den server-Explorar->hinzufügen-Verbindung->Wählen Sie Microsoft SQL Server-Datenbank-Datei und wählen Sie " Datenbank-name, und wählen Sie OK. Dann dieses prob nicht auftreten.
Folgen Sie dem video:
youtube-link
InformationsquelleAutor der Antwort Rafee Muhammad
Ich hatte das gleiche problem,und ich denke, dass ich es herausgefunden.in der Verbindungszeichenfolge stellen Sie sicher, dass der connection-string sieht wie folgt aus:
Nun die ersten
ist, was standardmäßig angezeigt wird im web.config. Lassen Sie es unverändert,und fügen Sie eine weitere connectionstring
mit Ihren Parametern. Das ist für mich arbeiten. Hoffe, es hilft.
InformationsquelleAutor der Antwort Natalia J.