Announcement

Collapse
No announcement yet.

Remoteverbindungen nicht zulässig

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Remoteverbindungen nicht zulässig

    Ich erhalte unter MS SQL Server 2005 die folgende Fehlermeldung:
    Fehler beim Herstellen einer Verbindung mit dem Server.
    Beim Herstellen einer Verbindung mit SQL Server 2005 kann dieser Fehler dadurch verursacht werden, dass unter den SQL Server-Standardeinstellungen Remoteverbindungen nicht zulässig sind.
    (provider: SQL-Netzwerkschnittstellen, error: 26 - Fehler beim Bestimmen des angegebenen Servers/der angegebenen Instanz)

    Ein Hinweis noch:
    Über das "SQL Server Management Studio" kann ich die ASPNETDB-Datenbank ansprechen und mir die Daten anzeigen lassen.

    Der Quellcode und die Datenbank des Webprojekts liegt hier:
    http://aspnet.4guysfromrolla.com/articles/120705-1.aspx


    Es gibt zwar einen ähnlichen Thread, doch leider konnte er mir bislang nicht weiterhelfen:
    http://entwickler-forum.de/showthrea...moteverbindung


    Ich sehe den Wald vor lauter Bäumen nicht mehr und wäre froh, wenn mir jemand helfen könnte, den o.g. Fehler zu beheben.


    Grüsse,
    Carsten

    P.S.: Anbei der Inhalt der web.config-Datei im Textformat.
    Attached Files

  • #2
    Schon kontrolliert:
    Attached Files

    Comment


    • #3
      Über die "SQL Server-Oberflächenkonfiguration" habe ich nun den Eintrag "Lokale Verbindung und Remoteverbindungen" überprüft.
      Der Eintrag stand bislang auf "TCP/IP und Named Pipes verwenden". Auch ein Umstellen des Eintrags auf "Nur TCP/IP verwenden" bringt keinen gewünschten Erfolg.

      Ich erhalte weiterhin die folgende Fehlermeldung:


      Vielleicht hat noch jemand eine andere Idee ?
      Attached Files

      Comment


      • #4
        Es gibt möglicherweise Licht am Ende des Tunnels. In der web.config (siehe Ausgangsposting) wurde der connectionStringName mit "LocalSqlServer" angegeben.

        Nach Überprüfung der machine.config (siehe Anhang) sah ich, daß der folgende Eintrag vorhanden war:
        <add name="LocalSqlServer" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspn etdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>

        Über die "SQL Server-Oberflächenkonfiguration" stellte ich fest, daß der Servername "MSSQLTrial" lautet und nicht "SQLExpress".

        Mit dieser neuen Erkenntnis habe ich den Eintrag in der machine.config entsprechend angepaßt (genauso wie oben, jedoch anderer connectionString):
        <add name="LocalSqlServer" connectionString="data source=.\MSSQLTRIAL;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspn etdb.mdf;User Instance=true" providerName="System.Data.SqlClient"/>

        Nach erneutem Start der Webanwendung ist zwar der Fehler "Remoteverbindungen nicht zulässig" verschwunden, jedoch erhalte ich nun die folgende Fehlermeldung:
        "Serverfehler in der Anwendung /Membership - Part 1.
        Das Anmeldungsflag für die Benutzerinstanz wird für diese Version von SQL Server nicht unterstützt.
        Die Verbindung wird geschlossen.
        Beschreibung: Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung.
        Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde.

        Ausnahmedetails: System.Data.SqlClient.SqlException:
        Das Anmeldungsflag für die Benutzerinstanz wird für diese Version von SQL Server nicht unterstützt. Die Verbindung wird geschlossen.

        Quellfehler:
        Beim Ausführen der aktuellen Webanforderung wurde einen unbehandelte Ausnahme generiert. Informationen über den Ursprung und die Position der Ausnahme können mit der Ausnahmestapelüberwachung angezeigt werden."

        Was hat diese Fehlermeldung wieder zu bedeuten ?
        Attached Files

        Comment


        • #5
          Hallo,

          ..AttachDBFilename=|DataDirectory|... User Instance=true" ..
          der User Instance-Modus wird nur von der Express-Edition des MS SQL Server 2005 unterstützt. User Instance bedeutet, dass der Dienst des MS SQL Servers unter dem eingeschränkten Benutzerkonto mit privaten Kopien der Systemdatenbanken gestartet wird, so dass AttachDBFilename die Datenbankdatei erst zur Laufzeit in den MS SQL Server 2005 Expresss einhängen kann.

          Beim "richtigen" MS SQL Server wird die Datenbank vom DBA permanent in den Server eingehängt und danach die Zugriffsrechte für die unterstützten Benutzer erteilt. In der Verbindungszeichenfolge sind in diesem Fall die Schlüsselwörter AttachDBFilename und User Instance nicht zulässig.

          Wenn die ASP.NET Membership-Provider bzw. Role-Provider mit der permanent eingehängten Datenbank genutzt werden sollen, muss der ASP.NET SQL Server Setup Wizard (apsnet_regsql.exe) die Tabellen dort anlegen.
          Zuletzt editiert von Andreas Kosch; 21.02.2008, 17:20.

          Comment


          • #6
            Das mit dem UserInstance-Modus ist ein guter Hinweis. Ich habe jetzt den ConnectionString in der machine.config entsprechend angepaßt:
            <add name="LocalSqlServer" connectionString="data source=.\MSSQLTRIAL;Integrated Security=SSPI" providerName="System.Data.SqlClient"/>

            Anschließend habe ich, wie von Dir vorgeschlagen, das Tool "aspnet_regsql.exe" gestartet und mit Hilfe der ersten Funktion "SQL Server für Anwendungsdienste konfigurieren" die vorhandene Datenbank konfiguriert.

            Beim Versuch, das Webprojekt zu starten, erhalte ich nun die folgende Fehlermeldung (Screenshot befindet sich im Anhang):
            "Die gespeicherte Prozedur 'dbo.aspnet_CheckSchemaVersion' wurde nicht gefunden.
            Beschreibung: Unbehandelte Ausnahme beim Ausführen der aktuellen Webanforderung.
            Überprüfen Sie die Stapelüberwachung, um weitere Informationen über diesen Fehler anzuzeigen und festzustellen, wo der Fehler im Code verursacht wurde.

            Ausnahmedetails:
            System.Data.SqlClient.SqlException:
            Die gespeicherte Prozedur 'dbo.aspnet_CheckSchemaVersion' wurde nicht gefunden.

            Quellfehler:
            Beim Ausführen der aktuellen Webanforderung wurde einen unbehandelte Ausnahme generiert.
            Informationen über den Ursprung und die Position der Ausnahme können mit der Ausnahmestapelüberwachung angezeigt werden.


            Habe ich womöglich einen Hinweis in Deiner Antwort übersehen ?
            Wie gehe ich nun weiter vor, um die Fehlermeldung zu beheben ?
            Attached Files

            Comment


            • #7
              Die Fehlermeldung "Die gespeicherte Prozedur 'dbo.aspnet_CheckSchemaVersion' wurde nicht gefunden." kann ich nicht ganz nachvollziehen.

              Denn über das "SQL Server Management Studio"-Tool konnte ich mich vergewissern, daß in der von dem Webprojekt verwendeten Datenbank die gespeicherte Prozedur "dbo.aspnet_CheckSchemaVersion" vorhanden ist.


              Kann das Problem vielleicht mit meiner Entwicklungsumgebung zu tun haben, die wie folgt aussieht:
              Microsoft Windows XP Professional
              Microsoft SQL Server 2005 (Trial-Version)
              Microsoft Visual Web Developer 2005 Express Edition (VWD)

              Wäre es evtl. möglich, daß VWD nur mit "Microsoft SQL Server 2005 Express Edition" richtig zusammenarbeitet ?
              Im Umkehrschluß würde dies bedeuten, daß VWD nicht mit "Microsoft SQL Server 2005 (Trial-Version)" kompatibel ist, richtig ?

              Comment


              • #8
                Hallo,

                ..daß in der von dem Webprojekt verwendeten Datenbank die gespeicherte Prozedur "dbo.aspnet_CheckSchemaVersion" vorhanden ist
                das Problem besteht darin, dass der von ASP.NET verwendete Arbeitsprozess keine Rechte an dieser Prozedur hat, solange das für den Arbeitsprozess konfigurierte Benutzerkonto nicht zur festen Serverrolle sysadmin gehört (was aus dem Sicherheitsaspekt betrachtet eine schlechte Idee wäre).

                Wenn man als Entwickler (interaktiv unter Windows angemeldeter Benutzer) auf den SQL Server zugreift, unterscheidet sich die integrierte Windows-Authentifizierung von dem Benutzerkonto, das ASP.NET nutzt.

                Um das Problem zu lösen, muss das für ASP.NET verwendete Benutzerkonto die Zugriffsrechte für die Datenbankobjekte erhalten. Dies geht zum einen über separate GRANT-Aufrufe oder implizit durch die Zuordnung zu einer der vordefinerten festen Serverrollen.

                Comment


                • #9
                  Originally posted by Andreas Kosch View Post
                  Um das Problem zu lösen, muss das für ASP.NET verwendete Benutzerkonto die Zugriffsrechte für die Datenbankobjekte erhalten. Dies geht zum einen über separate GRANT-Aufrufe oder implizit durch die Zuordnung zu einer der vordefinerten festen Serverrollen.
                  Also wenn ich Dich richtig verstehe, habe ich 2 Möglichkeiten:
                  1. Separate Grant-Aufrufe
                  2. Zuordnung zu einer der vordefinierten Serverrollen


                  Da ich mit dem "MS SQL Server" noch nicht wirklich gut vertraut bin, habe ich noch einige Fragen:

                  1. Wie stelle ich denn das genau an ?

                  2. Kann ich die Zuordnung zu einer der vordefinierten Serverrollen über das "SQL Server Management Studio" vornehmen ?

                  3. Wo kann ich sehen, wie das derzeitige für ASP.NET verwendete Benutzerkonto in "VWD 2005 Express Edition" heißt ?

                  Comment


                  • #10
                    So, ich fasse mal meine Erfahrungen zusammen, die ich nach dem letzten Tip von Andreas Kosch gemacht habe:

                    Nach Start des "MS SQL Management Studios" erscheint das Fenster "Verbindung mit Server herstellen", in dem bekanntlich "Windows-Authentifizierung" und der Benutzername in Klartext sichtbar ist.

                    Nach Klick auf den "Verbinden"-Button wird die Verbindung zum "MS SQL Server" hergestellt.

                    Im Objekt-Explorer dieses Programms habe ich nun unter "Sicherheit / Anmeldungen" per rechter Maustaste die Funktion "Neue Anmeldung..." ausgeführt und den o.g. Benutzernamen als Anmeldenamen eingetragen.

                    Als Standarddatenbank habe ich die gewünschte Datenbank und als Standardsprache "German" ausgewählt.

                    Nach den erfolgten Änderungen funktionierte auch wieder das Webprojekt in "VWD 2005 Express Edition".


                    Ein großes Dankeschön noch mal an Andreas Kosch, mit dessen Hilfe das Problem gelöst werden könnte.

                    Eine Frage habe ich noch:
                    Sind die theoretischen Hintergründe hierzu bzw. das, was ich jetzt in diesem Posting geschrieben habe, in einem Buch von Dir oder einem anderen Autor nachlesbar ?

                    Ich habe selbst leider nur das kleine Buch "SQL Server 2005 Express Edition" von Herrn Kosch, in dem zu dieser Thematik leider nichts drinsteht.

                    Comment


                    • #11
                      Hallo,

                      Sind die theoretischen Hintergründe hierzu bzw. das, was ich jetzt in diesem Posting geschrieben habe, in einem Buch von Dir oder einem anderen Autor nachlesbar ?
                      Das 550 Seiten große SQL Server 2005 Programmierhandbuch (ISBN 3-935042-00-x) geht auf die Unterschiede aus der Sicht des SQL Servers ein. Allerdings steht dort die Datenbank und T-SQL im Vordergrund, so dass dort die Besonderheiten des ASP.NET Membership-Provider bzw. Role-Provider und somit die ASPNETDB.MDF nicht angesprochen werden.

                      Comment


                      • #12
                        Originally posted by Andreas Kosch View Post
                        Das 550 Seiten große SQL Server 2005 Programmierhandbuch (ISBN 3-935042-00-x) geht auf die Unterschiede aus der Sicht des SQL Servers ein.
                        Unter der ISBN konnte ich in der Amazon-Suchmaske nichts finden.

                        Welchen der genannten Titel meinst Du genau:
                        1. SQL Server 2005 Programmierhandbuch von A. Kosch (1. Auflage von 2006)
                        2. Das Programmierhandbuch SQL Server 2005 von D. Mertins, J. Neumann und A. Kühnel (2. Auflage von 2007)

                        Hast Du evtl. einen Amazon-Link parat ?

                        Da ich überlege, bald auf den SQL Server 2008 umzusteigen, wäre ich diesbezüglich ebenfalls für einen Buchtip dankbar.

                        Comment


                        • #13
                          Hallo,

                          ich hatte mein SQL Server 2005 Programmierhandbuch gemeint, aber bei der ISBN ins falsche Regal gegriffen ;-)

                          Comment


                          • #14
                            Da kommt's raus, du kennst dein Buch nicht in- und auswendig *gd&r*

                            Gruß,
                            Martin
                            PS: SCNR

                            Comment

                            Working...
                            X