Oracle-Fehlermeldung „TNS: Listener kann in Connect-Deskriptor angegebenen Service aktuell nicht auflösen“ beheben

Nach einer Umstellung der Oracle-Datenbank beim Kunden, haben wir folgende Fehlermeldung in unserer ASP.NET-MVC-Webanwendung erhalten:

TNS: Listener kann in Connect-Deskriptor angegebenen Service aktuell nicht auflösen

Der Callstack („Aufrufstapel“) sah so aus:

OracleInternal.Network.NetworkException

bei OracleInternal.Network.OracleCommunication.DoConnect(String tnsDescriptor)
bei OracleInternal.ServiceObjects.OracleConnectionImpl.Connect(ConnectionString cs, Boolean bOpenEndUserSession)

Die Ursache war ein Fehler in der Verbindungszeichenfolge („Connection String“).

Statt folgendem Connection String:

DATA SOURCE=192.168.148.111:1530/SXY; User Id=MyUser; Password=MyPassword;

Haben wir diesen hier verwendet:

DATA SOURCE=192.168.148.111:1530/SXY**.EXAMPLE.ORG**; User Id=MyUser; Password=MyPassword;

Danach ging es.

Keine Ahnung, was da genau der Unterschied ist; entweder braucht der DNS wirklich den Full Qualified Name (was ich bezweifle, da wir ja die IP-Adresse schon angegeben hatten), oder es ist dieser Unterschied zwischen „SID“ und „Service-Name“.

Ersteres könnte die SID gewesen sein, letzteres, der Service-Name. Die neue Datenbank erwartet also immer den Service-Namen und nicht mehr die SID.