Laden...

Zugriff auf SQL DB

Erstellt von JayDee72 vor 8 Monaten Letzter Beitrag vor 8 Monaten 469 Views
J
JayDee72 Themenstarter:in
17 Beiträge seit 2023
vor 8 Monaten
Zugriff auf SQL DB

Hallo zusammen,

bei unserer Entwicklung ist irgendwie ein Phänomen.

Seit kurzem haben wir einen SQL im Zugriff...    Über die Debugfunktion und dem lokalen IIS läuft es.

Wenn ich es über den IIS aus dem Netz anspreche mit der veröffentlichen Fassung leider nicht mehr.

Als wenn der Connection String nicht korrekt ist.

Ein Ping vom WebServer auf den DB Server geht....

Jemand eine Vermutung, wo ich noch mal schauen könnte ?

Danke

Ergänzung: es handelt sich um eine Blasor Server App

4.938 Beiträge seit 2008
vor 8 Monaten

Welche genaue Datenbank verwendet ihr denn? Ist denn auch der Client davon korrekt auf dem WebServer installiert?

Und welche genaue Fehlermeldung gibt es beim Verbinden?

PS: SQL ist nur die Abfragesprache! Oder meinst du den MS SQL Server?

J
JayDee72 Themenstarter:in
17 Beiträge seit 2023
vor 8 Monaten

Sorry, ja MSSQL Server  15.0.4316.3

Client aufm WebServer ? 😃
das könnte es schon sein

was muss ich auf ihm noch installieren ?

4.938 Beiträge seit 2008
vor 8 Monaten

Wenn ihr Microsoft.Data.SqlClient verwendet, dann sollte kein weiterer Download erforderlich sein.

Evtl. sind es aber auch fehlende Zugriffsrechte (vom MS SQL Server aus).

Edit: Wenn du gar nicht weiterkommst, könntest du Create C# apps using SQL Server on Windows (mit den Zugangsdaten zu eurem MS SQL Server) erstellen und das Programm dann direkt auf dem WebServer laufen lassen.

J
JayDee72 Themenstarter:in
17 Beiträge seit 2023
vor 8 Monaten

wir haben das Paket Microsoft.EntityFrameworkCore.SqlServer installiert.

soll ich wechseln ?

der Zugriff mit dem User den ich verwende klappt ja mit dem lokalen IIS,l daher denk ich ehr an anderes als Berechtigungen

4.938 Beiträge seit 2008
vor 8 Monaten

Ich hatte gerade noch meinen obigen Beitrag editiert - du könntest also zum Test eine Entity Framework Konsolenapplikation erstellen (um dies außerhalb vom IIS zu testen).

Wie lautet denn die genaue Fehlermeldung?

Edit: Evtl. hilft dir dann Troubleshoot connectivity issues in SQL Server dabei weiter.

J
JayDee72 Themenstarter:in
17 Beiträge seit 2023
vor 8 Monaten

ja auch eine gute idee mit einer anderen APp zu testen...
hab da auch anfangs eine gehabt...

Fehlermeldung aus der Ereignisanzeige des WebServers

Category: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost
EventId: 111
SpanId: f0cede58881a6889
TraceId: ec856588e49b2bb7f41c91f762f8ace2
ParentId: 0000000000000000
RequestId: 40000028-0001-f600-b63f-84710c7967bb
RequestPath: /_blazor
TransportConnectionId: JmN_T58f0XAVFsIkOOWDUg

Unhandled exception in circuit 'YusFnfMC-SCHxi52E2ZP-g57wEfqgz8eaOSNum6hOw8'.

Exception: 
System.AggregateException: One or more errors occurred. (The ConnectionString property has not been initialized.)
---> System.InvalidOperationException: The ConnectionString property has not been initialized.
at Microsoft.Data.SqlClient.SqlConnection.PermissionDemand()
at Microsoft.Data.SqlClient.SqlConnectionFactory.PermissionDemand(DbConnection outerConnection)
at Microsoft.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at Microsoft.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
at Microsoft.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource`1 retry, SqlConnectionOverrides overrides)
at Microsoft.Data.SqlClient.SqlConnection.InternalOpenAsync(CancellationToken cancellationToken)
--- End of stack trace from previous location ---
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternalAsync(Boolean errorsExpected, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenAsync(CancellationToken cancellationToken, Boolean errorsExpected)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.InitializeReaderAsync(AsyncEnumerator enumerator, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.SqlServer.Storage.Internal.SqlServerExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func`4 operation, Func`4 verifySucceeded, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.SingleQueryingEnumerable`1.AsyncEnumerator.MoveNextAsync()
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.ShapedQueryCompilingExpressionVisitor.SingleAsync[TSource](IAsyncEnumerable`1 asyncEnumerable, CancellationToken cancellationToken)
at Dashboard.WidgetNeustenAuftraege.LadeAuftraege2(GridState`1 state) in C:\Users\XXX\source\repos\monitoring\Monitoringliste\BlazorApp1\Dashboard\WidgetNeustenAuftraege.razor:line 80
at MudBlazor.MudDataGrid`1.InvokeServerLoadFunc()
at MudBlazor.MudDataGrid`1.OnAfterRenderAsync(Boolean firstRender)
--- End of inner exception stack trace ---

3.825 Beiträge seit 2006
vor 8 Monaten

Sicher dass IIS und SQL Server auf dem gleichen Rechner laufen ?

Was passiert mit dem lokalen IIS ohne Debug ?

Was passiert wenn man den IIS aus dem Netz anspricht mit Debug Version ?

Ist der Connectionstring in allen Fällen wirklich gleich ?

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

J
JayDee72 Themenstarter:in
17 Beiträge seit 2023
vor 8 Monaten

was muss auf dem WebServer alles drauf sein ??

Die MSSQL ist auf einem anderen Server

3.825 Beiträge seit 2006
vor 8 Monaten

Welche SQL Server Version ? SQLEXPRESS ?

Du musst den Dienst SQL Browser aktivieren. Dann musst Du das Protokoll TCP/IP aktivieren. Dann Firewall Regeln einrichten oder beide Firewalls testweise abschalten.

Probiere von dem IIS Rechner aus per SQL Management Studio den SQL Server zu erreichen.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

J
JayDee72 Themenstarter:in
17 Beiträge seit 2023
vor 8 Monaten

Der SQL Server hat die Version 15.0.4316.3

auf dem WebServer läuft kein SQL Dienst

4.938 Beiträge seit 2008
vor 8 Monaten

System.AggregateException: One or more errors occurred. (The ConnectionString property has not been initialized.)
---> System.InvalidOperationException: The ConnectionString property has not been initialized.

Das deutet darauf hin, daß der ConnectionString nicht korrekt eingelesen wurde. Wie greifst du von dem Programm darauf zu (Configuration, Environment-Variable)? Vorgestern gab es gerade dazu ein Thema: Richtiger Umgang mit Configuration

3.825 Beiträge seit 2006
vor 8 Monaten

Auf dem Rechner mit dem SQL Server muss der Dienst "SQL Browser" laufen.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

3.825 Beiträge seit 2006
vor 8 Monaten

Zitat von JayDee72

auf dem WebServer läuft kein SQL Dienst

Auf dem Rechner mit dem SQL Server muss der Dienst "SQL Browser" laufen.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

16.830 Beiträge seit 2008
vor 8 Monaten

Der SQL Browser Service ist nicht zwangsweise notwendig, um sich mit dem SQL Server zu verbinden.
Er liefert ausschließlich Browser-Fähigkeiten. Siehe: SQL Server Browser Service (Database Engine and SSAS)

The SQL ServerBrowser program runs as a Windows service. SQL Server Browser listens for incoming requests for Microsoft SQL Server resources and provides information about SQL Server instances installed on the computer. SQL Server Browser contributes to the following actions:

Browsing a list of available servers

Connecting to the correct server instance

Connecting to dedicated administrator connection (DAC) endpoints

Die Verbindung zur MSSQL Instanz ist eben aber auch ohne diesen Service möglich.
Genauso wie die Datenbank selbst sollte dieser Service niemals auf Rechnern aktiv sein, die Zugriff über das Internet haben.

Beim SQL Server muss aber konfiguriert werden, wie man sich verbinden kann (TCP/IP, Named Pipes...).
Siehe zB Configure SQL Server to listen on a specific TCP port