Laden...

Datenbankverbindung schlägt fehl. (error 26)

Erstellt von Maximus vor 17 Jahren Letzter Beitrag vor 17 Jahren 10.485 Views
M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 17 Jahren
Datenbankverbindung schlägt fehl. (error 26)

Hallo,

ich habe meine Website samt Datenbank erfolgreich auf einen Webserver übertragen und erhalte nun beim Aufruf der Website den folgenden Fehler:

_An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified) _

Hier der Auszug aus der web.config:

	<connectionStrings>
		<add name="BundesligaConnectionString" connectionString="Data Source=mssql027.1und1.de;Initial Catalog=db12374433;Integrated Security=True"  providerName="System.Data.SqlClient"/>
	</connectionStrings>

Wie muss ich den String umstellen, dass es funktioniert?
Fehlt eventuell ein Password o.ä.?
Auf meinem lokalen Rechner hat es wunderbar funktioniert.

Danke für Eure Hilfe.

Gruss Maximus

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

3.170 Beiträge seit 2006
vor 17 Jahren

Hallo,
das dürfte an der Integrated Security liegen, die benutzt die WindowsAuthetifizierung und versucht sich mit deinem Windows-Logon zu verbinden 🙁
Schau mal hier ms-help://ms.netframework.v20.de/dv_ASPNETgenref/html/b6ffbb2e-a4d1-410e-8f7e-9755e92c65de.htm
da steht unter "Beispiel" wie du dich mit Benutzername und Kennwort verbinden kannst.

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 17 Jahren

Jetzt, habe ich es wie folgt geändert:

		<add name="BundesligaConnectionString" connectionString="server=mssql027.1und1.de; database=db12374433;uid=Benutzername; pwd=Passwort " providerName="System.Data.SqlClient"/>

Die Fehlermeldung bleibt aber.
Hat noch jemand eine Idee?

Gruss
Maximus

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

3.170 Beiträge seit 2006
vor 17 Jahren

Hallo,
probier mal das hier, funzt mit SQLExpress...

<add name="myConnection" connectionString="Data Source=my.server.com;Initial Catalog=MyDataBaseName;Persist Security Info=True;User ID=foo;Password=bar" providerName="System.Data.SqlClient"/>

EDIT: Oder guck mal nach den Leerzeichen in Deinem String um pwd=..., die könnten auch stören.

EDIT2:
Mir ist gerade noch was aufgefallen: In meinen Connectionstrings steht immer noch die Serverinstanz mit dabei, also so

connectionString="Data Source=my.server\sqlexpress;InitialCatalog...
statt
connectionString="Data Source=my.server;InitialCatalog...

nun weiß ich aber nicht wie die serverinstanz dieses Servers heißt.

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 17 Jahren

Nein, hat leider auch beides nicht funktioniert.

Hat noch jemand einen Tip?

Gruß Maximus.

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

3.170 Beiträge seit 2006
vor 17 Jahren

Hallo,
ich denke schon daß es an der Serverinstanz liegt. Das sagt jedenfalls auch die Fehlermeldung. Du hast in Deinem Beispiel keine Serverinsatnz angegeben, und die Instanz des Servers, auf den Du willst heißt wahrscheinlich nicht "sqlexpress" wie in meinem Beispiel.
Versuch mal mit
mssql027.1und1.de\mssql
(MSSQL ist glaub ich der Default-Instanzname beim SQLServer).

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

484 Beiträge seit 2006
vor 17 Jahren

http://hilfe-center.1und1.de/hosting/scripte_datenbanken/mssql_access/2.html

*kopfschüttel*
AYP - Ask your Provider!

oder
http://www.connectionstrings.com/

Scheint ja mit dem *.bak funktioniert zu haben 😉

Gruß Jörg

M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 17 Jahren

Das habe alles so umgesetzt,
ich glaube aber den Fehler gefunden haben, (wenn auch nicht die Lösung dazu´):

Etwas weiter unten steht dann noch:

<membership>
			<providers>
				<remove name="AspNetSqlMembershipProvider"/>
				<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="LocalSqlServer" minRequiredPasswordLength="5" minRequiredNonalphanumericCharacters="0" passwordStrengthRegularExpression=""/>
			</providers>
		</membership>

Ich denke, dass da der bei LocalSqlServer liegt.
Muss ich das auf den ConnectionString setzen, den ich oben deklariert habe?

Bisher wurden die Membershipdaten in der Datei ASPNETDB.MDF verwaltet. Wie bekomme ich nun diese Infos zum Webserver?
Womit kann man MDF-Datein überhaupt öffnen?

Und sorry, dass ich mich so doof anstelle. 😦

Gruss
Maximus!

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

484 Beiträge seit 2006
vor 17 Jahren

Entweder so

<connectionStrings>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="server=mssql027.1und1.de; database=db12374433;uid=Benutzername; pwd=Passwort" />
</connectionStrings>

// Oder ändere

connectionStringName="LocalSqlServer"
// in
connectionStringName="BundesligaConnectionString"


wobei das erste

M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 17 Jahren

Okay, aber wie bekomme ich nun ganzen Tabellen und Stored Procedures in die neue Datenbank?
Die liegen ja bisher nur als ASPNETDB.MDF vor. Womit kann ich soeine Datei öffen um die Daten auf die Datenbank des Webservers zu exportieren?

Gruss
Maximus.

Danke Für Eure Hilfe.

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

484 Beiträge seit 2006
vor 17 Jahren

Start > Ausführen > C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql -W
oder
aspnet_regsql -sqlexportonly c:\setup.sql -A all

mehr dazu aspnet_regsql /?

Gruß Jörg

M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 17 Jahren

Hallo Jörg,

danke für Deine unermüdliche Mühe.

Ich konnte einen SQL-File erstellen den ich auch, nachdem ich überall @dbname = N'ASPNETDB' durch @dbname = N'db181769356' ersetzt habe.

Nun kommt aber immer die folgende Meldung:

_The SSE Provider did not find the database file specified in the connection string. At the configured trust level (below High trust level), the SSE provider can not automatically create the database file. _

Was ist das nun schon wieder?
Es hat doch lokal alles funktioniert. 😦

Gruss
Maximus

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

484 Beiträge seit 2006
vor 17 Jahren

Konntest Du dich nicht mit aspnet_regsql -W auf dem DbServer von 1&1 anmelden?
Dann brauchst Du garnichts ändern.

Wenn Du schon aspnet_regsql -sqlexportonly c:\setup.sql -A all
verwendest dann lese bitte auch die hilfe wie erwähnt
aspnet_regsql /?

Du hast mit Sicherheit nur dbo Rechte auf deine Datenbank und keinerlei Zugriff
auf master

Stimmt denn deine web.config jetzt?

Gruß Jörg

M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 17 Jahren

Nein,
anscheinend läßt 1&1 keinen Zugriff auf die Datenbank von außen zu.

Die web.config scheint zu stimmen, jedenfalls kann ich alle Aktionen ausführen, die nichts mit der Benutzeranmeldung zu tun haben.

Ich werde verrückt. Jetzt versuche ich das schon geschlagene 3 Tage.
Würde es Dir etwas helfen, wenn ich Dir die ASPNETDB.MDB zusende, oder was auch immer?
Die Verzweiflung ist mittlerweile groß! 😦

Gruß Maximus

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

484 Beiträge seit 2006
vor 17 Jahren

Mmmh, falschen Provider ausgewählt ?(


// Spässle
if(HostingProvider == null)
   new HostingProvider();

Versuch mal das:
Ein Blick in die Hilfe, die du ja auch gelesen hast, oder 😉, gibt mir das hier:

aspnet_regsql.exe -sqlexportonly c:\membership.sql -A all -d dbname -S servername -U user -P password

Da ich die Möglichkeiten deines HostingProviders nicht kenne, solltest Du nachsehen welche Managementinstrumentarien Dir zur Verfügung stehen.

Stimmt wirklich alles in der web.config?
http://weblogs.asp.net/scottgu/archive/2006/04/22/Always-set-the-2200_applicationName_2200-property-when-configuring-ASP.NET-2.0-Membership-and-other-Providers.aspx

Wenn Du nichts zur Verfügung hast nimm den SQL Server Web Data Administrator kopierst den Ordner Web auf deine Seite passt die web.config an fertig!

Manchmal hilft es auch, wenn man die FAQ´s des Providers durchliest.

Gruß Jörg

M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 17 Jahren

Jetzt bin ich ein Stück schlauer:

Während auf meinem lokale Rechner SQl Server 2005 läuft läuft auf dem 1&! Server noch SQL Server 2000!

Daher kann ich die SQL-Datei auch nicht importieren.
Weiß jemand, ob eine Möglichkeit gibt, eine MDF-Datei (Server 2005) in das SQL-Server 2000 Formuat umzuwandeln?

Gruß
Maximus!

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

484 Beiträge seit 2006
vor 17 Jahren

Generierung von Datenbankerstellungs- und Objektscripten auf dem Express System.
Ausführen dieser Scripte auf dem SQL2000 System. SQL funktioniert meistens.

Daten dann mit http://www.sqlscripter.com/ die Daten holen.

Jörg

M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 17 Jahren

So, jetzt müsste es doch fast geschafft sein:

Mittels aspnet_regsql.exe -sqlexportonly c:\membership.sql -A all -d dbname -S servername -U user -P password konnte ich einen SQL-File erzeugen der sich fehlerfrei mittels Query Analyser auf die Server Datenbank übertragen lies.
Ich kann sogar schon einmal einen Benutzer anmelden, danach kommt aber die Meldung _The SSE Provider did not find the database file specified in the connection string. At the configured trust level (below High trust level), the SSE provider can not automatically create the database file. _ wieder.

Was mich wundert: Bei den Datenbanken, die ich erstellt haben steht als Besitzer dbo11223344 während bei den importierten Datenbanken als Besitzer nur dbo steht. (siehe Bild)

Ist das vielleicht der Grund für die Fehlermeldung?

Gruß
Maximus

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

484 Beiträge seit 2006
vor 17 Jahren

http://msdn2.microsoft.com/de-de/library/ms177519.aspx

Gruß Jörg
P.S. So lernt man es doch viel besser oder 😉

M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 17 Jahren

Definitiv,

jetzt habe ich testweise ein paar Tabellen von dbo in dbo11223344 geändert, nur um die folgende Meldung zu bekommen:

Invalid object name 'dbo.aspnet_Applications'.
Invalid object name 'dbo.aspnet_Users'.
Invalid object name 'dbo.aspnet_Membership'

Scheint wohl so als wäre das nicht der Fehler gewesen.
Sonst noch eine Idee?

Gruß
Maximus!

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

484 Beiträge seit 2006
vor 17 Jahren

Machs anders:
Lösche alle Tabellen und gespeicherte Prozeduren auf SQL2000
denn auch die SP nutzen dbo.

Nimm das *.sql und ändere die dbo. in dbo11223344
Und erstelle dann die Tabellen und SP´s neu

Danke deinem Provider für ihr DbKonzept 😉

Gruß Jörg

M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 17 Jahren

Nein,

geht nicht:

Fehler -2147217865
Invalid object name 'master.dbo181769356.sysdatabases'.

Scheint auch damit nichts zu tun zu haben, denn wenn ich "meine" Tables auf Benutzer dbo umstelle, funktioniert es trotzdem.
Nur die *$%&% Mitgliederverwaltung will nicht laufen. 😦
Noch einen Tip?

Ich verzweifel hier noch.

Gruss
Maximus.

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

484 Beiträge seit 2006
vor 17 Jahren

Nur die Datenbanktabellen und Prozeduren die mit aspnet_ anfangen
lass die sys tabellen in Ruh !!!!!!

M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 17 Jahren

Leider immer noch Fehler:

Fehler -2147217865
Invalid object name 'dbo181769356.aspnet_SchemaVersions'.

Kann es sein, dass es damit nichts zu tun hat?
Wenn ich "meine" Tabellen in Besitzer dbo umändere kann ich drauf zugreifen.
Nur die Userverwaltung scheint zu spinnen.

Gruß Maximus

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

484 Beiträge seit 2006
vor 17 Jahren

Dann lass es auf dbo oder liese was 1&1 zu diesem dbo sagt.
Zur Userverwaltung:

ProviderException: The SSE Provider did not find the database file specified in the connection string. At the configured trust level (below High trust level), the SSE provider can not automatically create the database file.]
System.Web.DataAccess.SqlConnectionHelper.EnsureSqlExpressDBFile

Da steht doch der Fehler: Er möchte noch mit Express arbeiten.

Das Problem liegt in deiner web.config ⚠

Gruß Jörg

M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 17 Jahren

<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
	<connectionStrings>
		<add name="BundesligaConnectionString" connectionString="Data Source=mssql03.1und1.de;Initial Catalog=*******;Persist Security Info=False; User ID=*****; Password=*******" providerName="System.Data.SqlClient"/>
  </connectionStrings>
	<system.web>
    <anonymousIdentification enabled="false"/>
    <profile>
      <properties>
        <add name="BildGross" type="System.String" allowAnonymous="false"/>
        <add name="BildKlein" type="System.String" allowAnonymous="false"/>
        <add name="Lieblingsmannschaft" type="System.String" allowAnonymous="false"/>
      </properties>
    </profile>
		<authentication mode="Forms" />
		<membership>
			<providers>
				<remove name="AspNetSqlMembershipProvider"/>
        <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="BundesligaConnectionString"/>
			</providers>
		</membership>
    <customErrors mode="Off" />
		</system.web>
</configuration>

Ich finde da nirgendwo einen Verweis zu SQLExpress oder einen Fehler.
Sieht den sonst jemand?

Gruß
Maximus

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

484 Beiträge seit 2006
vor 17 Jahren

Ich schon 😉

Denn web.config erbt von maschine.config !!!!!!!!!!

Ändere mal das
<add name="BundesligaConnectionString" connectionString="Data Source=mssql03.1und1.de;Initial Catalog=;Persist Security Info=False; User ID=*****; Password=" providerName="System.Data.SqlClient"/>

<connectionStrings>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Data Source=mssql03.1und1.de;Initial Catalog=;Persist Security Info=False; User ID=*****; Password=" />
</connectionStrings>

Und

<membership>
<providers>
<remove name="AspNetSqlMembershipProvider"/>
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="LocalSqlServer"/>
</providers>
</membership>

Hatte ich aber schon mal geschrieben 🙂

Viel Erfolg
Jörg

M
Maximus Themenstarter:in
97 Beiträge seit 2006
vor 17 Jahren

Wir schreiben das Jahr 2006 und es ist der 21. Oktober.
Diesen Tag werde ich mir im Kalender rot markieren, denn
das Problem ist endlich gelöst.

Vielen vielen Dank für Deine unermüdliche Hilfe.
Ich denke, beim nächsten mal wird mir das nicht mehr passieren.

Gruß
Maximus

Die Schnecke kann Dir mehr über den Weg erzählen als der Hase.

484 Beiträge seit 2006
vor 17 Jahren

Gern geschehen 😁

Jörg