Connection String VB.Net funktioniert nicht

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Translating-IT.

    Connection String VB.Net funktioniert nicht

    Hi,

    ich musste gezwungenermaßen auf einen neuen Server für meine Website umziehen. Diese sitzt nun zusätzlich hinter einer pfsense-Firewall.

    Bisher habe ich mich ganz normal mit unten folgendem Connection String verbinden können. Dieser funktioniert jetzt nicht mehr über die HP.

    Die MS-SQL-Datenbank ist über SSMS ganz normal erreichbar, auch wenn ich das Projekt zu hause über IIS Express teste, kann ich alle Daten auslesen. Sobald ich aber alles am Server veröffentliche, kann die DB nicht mehr gefunden werden. Fehler:
    … Der Server wurde nicht gefunden oder auf ihn kann nicht zugegriffen werden. …

    Die Verbindung von außen läuft über die IP von pfsense (185.xxx.xxx.xxx), dieser leitet per NAT an den Server (10.xxx.xxx.xxx) weiter. MS SQL ist auf die IP 185.xxx.xxx.xxx mit spezifischem Port in TCP/IP eingerichtet.

    Mein Connection String lautet:

    user id=xx;password=xxx;Initial Catalog=dbname;Data Source=185.xxx.xxx.xxx,MeinPort;Column Encryption Setting=enabled"

    Ich vermute es hat mit der neuen Firewall zu tun.

    Was muss ich nun ändern, um alles wieder zum Laufen zu bekommen? Wie würde er mit Localhost lauten, bzw über den Instanznamen der DB am Server?

    Der Instanzname der DB lautet MSSQLSERVER. Der Servername: VXXXXXX.

    Liebe Grüße,
    Pascal
    :!: Leider hab ich nicht immer Zeit zum Programmieren, da es eher ein Hobby ist. Falls ich mal im Forum ne Frage stelle und länger nicht antworte, nicht böse sein: Ich bin dann entweder beruflich oder mit der Familie zu sehr eingespannt oder einfach zu müde. Das kann erfahrungsgemäß auch mal über Wochen dauern, aber ich melde mich immer und setze die Frage ggf. auf beantwortet.
    ok, die firewall sitzt vor dem server.
    der mssql-server hostet db UND website? oder nur db bzw. website?
    das wird ja ein windows-server für mssql sein. falls es verschiedene server sind, hast du mal einen udl-test gemacht?

    ich vermute, dass die firewall die dynamischen ports des sql-servers nicht geöffnet hat. du könntest einen festen port für den sql-server in der konfig hinterlegen und diesen dann in der firewall öffnen....ssms nutzt ja den standardport 1433

    sorry, du schriebst ja, spezifischen port

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „rrobbyy“ ()

    Ja, hostet beides.
    Ja, es ist ein MSSQL-Server und der Port ist offen.
    :!: Leider hab ich nicht immer Zeit zum Programmieren, da es eher ein Hobby ist. Falls ich mal im Forum ne Frage stelle und länger nicht antworte, nicht böse sein: Ich bin dann entweder beruflich oder mit der Familie zu sehr eingespannt oder einfach zu müde. Das kann erfahrungsgemäß auch mal über Wochen dauern, aber ich melde mich immer und setze die Frage ggf. auf beantwortet.
    Ist das denn wirklich eine "öffentliche" IPv4 Adresse?
    Viele ISP betreiben heute Carrier-grade NAT, damit kannst du das vergessen.
    Ich hab das Problem lösen können: ich muss für den Code am Server die IP 127.0.0.1 verwenden und in den TCP/IP-Einstellungen des SQL-Servers entsprechend einen Eintrag für diese IP hinterlegen.

    Dazu aber dann noch eine andere Frage: Kann ich irgendwie einen Filter (If-Klausel) einbauen, dass wenn in IIS-Express gestartet wird, soll er die IP 185… nehmen, sonst 127…?
    :!: Leider hab ich nicht immer Zeit zum Programmieren, da es eher ein Hobby ist. Falls ich mal im Forum ne Frage stelle und länger nicht antworte, nicht böse sein: Ich bin dann entweder beruflich oder mit der Familie zu sehr eingespannt oder einfach zu müde. Das kann erfahrungsgemäß auch mal über Wochen dauern, aber ich melde mich immer und setze die Frage ggf. auf beantwortet.