Visual Studio & SSL-Zertifikatsfehler bei Shared Datasets
Du hast eine freigegebene Datenquelle (.rds-Datei) in Visual Studio angelegt. Der Test-Button sagt: ✅ Erfolgreich verbunden. Aber sobald du versuchst, ein Shared Dataset auf dieser Datenquelle zu erstellen, bricht das Projekt zusammen. Die Fehlermeldung spricht von einem SSL-Zertifikat – obwohl du bereits TrustServerCertificate=True gesetzt hast!
Dieses Verhalten ist keine Konfigurationsfehler von dir, sondern eine dokumentierte Eigenheit von Visual Studio und SSDT (SQL Server Data Tools) bei der Behandlung von Metadatenabrufen im 32-Bit-Designer-Prozess.
- Die freigegebene Datenquelle (
.rds) ist angelegt - Verbindungstest via „Test Connection"-Button funktioniert
- Der Connection-String enthält bereits
TrustServerCertificate=True(und manchmalEncrypt=False) - Die Datenquelle wird im Berichtsprojekt akzeptiert
Fehler beim Abrufen der Felder
„A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: SSL Provider, error: 0 - Die Zertifikatskette wurde von einer nicht vertrauenswürdigen Quelle ausgestellt.)"
oder als Klartext:
„Der Zertifikatsfehler wurde vom Server zurückgegeben. Stellen Sie sicher, dass TrustServerCertificate=True in der Verbindungszeichenfolge enthalten ist."
Das Paradoxe: Die Verbindungszeichenfolge enthält bereits TrustServerCertificate=True – aber der Fehler tritt trotzdem auf!
Der Test-Button in der .rds-Datei nutzt die .NET Framework-Datenanbieter innerhalb der Visual Studio-Oberfläche (meist 64-Bit).
Der Dataset-Designer hingegen läuft in einem separaten 32-Bit-Prozess (z.B. Microsoft.DataTools.DataSetDesigner) und verwendet mitunter eine eigene, strengere TLS-/SSL-Implementierung.
Das TrustServerCertificate=True wird von diesem 32-Bit-Prozess nicht immer korrekt an den zugrundeliegenden Treiber weitergereicht – oder der Treiber erzwingt trotz der Einstellung eine vollständige Zertifikatsvalidierung.
Zusätzlich können Namensauflösungsprobleme (Named Pipes vs. TCP/IP) die Fehler verstärken.
Beispiel: Der Server heißt dev02 (oder localhost), das Zertifikat ist entweder selbstsigniert oder stammt von einer nicht vertrauenswürdigen CA. Der Designer meckert, obwohl die Datenquelle selbst die Zertifikatsprüfung deaktiviert hat.
❌ FALSCH (erzeugt den Fehler)
• Verwendet Kurzname (dev02) statt FQDN
• Keine explizite Port-Angabe
• Dataset-Designer ignoriert TrustServerCertificate
• Namensauflösung im 32-Bit-Modus unreliabel
✅ RICHTIG (funktioniert zuverlässig)
• Erzwingt TCP/IP-Protokoll
• Explizite Port-Angabe
• Umgeht Named Pipes-Probleme
• Verschlüsselung deaktiviert
| Parameter | Wert | Bedeutung |
|---|---|---|
Data Source |
tcp:dev02,1433 |
Erzwingt TCP/IP-Protokoll und gibt den Port an (Standard 1433). Umgeht Probleme mit Named Pipes/SQL Browser. |
TrustServerCertificate |
True |
Akzeptiert selbstsignierte oder nicht vertrauenswürdige Zertifikate (nur für Entwicklung!) |
Encrypt |
False oder Optional |
Verhindert, dass der Treiber eine verschlüsselte Verbindung erzwingt, was bei fehlerhaften Zertifikaten zusätzliche Fehler auslösen kann. |
Integrated Security |
SSPI |
Windows-Authentifizierung (Standard für Entwicklung) |
.rds-Datei → „Öffnen mit…" → „XML-Editor"
<ConnectionString>-Element und ersetze den Wert durch:
dev02 und amazon an deine Umgebung an!)
Ctrl+S → Datei schließen
.vs → Starte Visual Studio neu
- Verwende
tcp:Servername,Portauch wenn der Port 1433 ist. Das ist der Schlüssel zur Zuverlässigkeit.
- Installiere ein gültiges SSL-Zertifikat auf dem SQL Server
- Setze
TrustServerCertificate=False(nichtTrue) - Verwende
Encrypt=Truefür volle Sicherheit - Die obige Lösung ist nur für Entwicklungs-/Testumgebungen gedacht!
- Aktualisiere deine SQL Server-Treiber: Microsoft OLE DB Driver, ODBC Driver 17/18, .NET Framework-Updates
- Ältere Treiber sind fehleranfälliger bei SSL-Problemen
- Manchmal hilft es, die temporären Dataset-Dateien manuell zu löschen:
*.xsd,*.xss,*.rdl.data - Lösche auch
.vsVerzeichnis und dasbin/objVerzeichnis
- Öffne die Windows-Ereignisanzeige:
Applications & Services Logs → Microsoft → Windows → CertServices - Dort findest du manchmal die exakte Ursache des Zertifikatsfehlers
Es ist eine dokumentierte Eigenheit des Visual Studio-Dataset-Designers, der sich bei der Metadatenabrufe anders verhält als der einfache Verbindungstest.
Die Kombination aus den folgenden drei Punkten löst das Problem in den allermeisten Fällen:
- TCP-Erzwingung:
tcp:Server,Port - Explizites Vertrauen:
TrustServerCertificate=True - Verschlüsselung deaktivieren:
Encrypt=False
Wenn der Fehler trotzdem noch auftritt, prüfe die Windows-Ereignisanzeige auf zusätzliche Zertifikatswarnungen – dort findest du oft die exakte technische Ursache.
Noch Fragen?
Falls du weitere ähnliche Probleme in SSDT erlebt hast oder zusätzliche Workarounds kennst, teile sie in den Kommentaren – wir sammeln die besten Lösungen!
📊 Zu ReportServerCheck auf GitHub