Wenn Sie versuchen, einen Remoteprozeduraufruf (RPC) von einem Server zu einem anderen in SQL Server zu erstellen, wird die Fehlermeldung "Fehler 18482" angezeigt


Problembeschreibung


Beim Versuch eines Remoteprozeduraufrufs (RPC) von einem Server zu einem anderen (beispielsweisedurch Ausführen einer gespeicherten Prozedur auf einem Remotecomputer mit einer Anweisung wie exec SERV_REMOTE. Pubs. gespeicherte byroyalty), wird möglicherweise die folgende Fehlermeldung angezeigt:
Fehler 18482: die Verbindung mit der Website "0" konnte nicht hergestellt werden, da "" nicht als Remoteserver auf der Website definiert ist.
Hinweis Wenn Sie Microsoft SQL Server 2005 verwenden, wird möglicherweise die folgende Fehlermeldung angezeigt:
Fehler 18482: die Verbindung zum Server <Server Name> konnte nicht hergestellt werden, da <Server Name> nicht als Remoteserver definiert ist. Überprüfen Sie, ob Sie den richtigen Servernamen angegeben haben.

Ursache


Dieser Fehler tritt auf, wenn SQL Server keinen Remoteprozeduraufruf ausführen kann. Dies kann auf einen nicht ordnungsgemäß konfigurierten lokalen Server zurückzuführen sein. Um einen Remoteprozeduraufruf durchführen zu können, ermittelt SQL Server zunächst, wer der lokale Server ist, indem er nach dem Server Namen mit srvid = 0 in sysserverssucht. Wenn ein Eintrag mit srvid = 0 nicht in sysserversgefunden wird oder wenn der Servername mit srvid = 0 zu einem Servernamen gehört, der sich vom lokalen Windows NT-Computernamen unterscheidet, wird die Fehlermeldung angezeigt.

Problemumgehung


Wenn Sie feststellen möchten, ob der lokale Server ordnungsgemäß konfiguriert ist, überprüfen Sie die Spalte srvstatus in Master. sysservers. Dieser Wert sollte für den lokalen Server 0 sein. Angenommen, der lokale Server hieß "SERV_LOCAL", der Remoteserver hieß "SERV_REMOTE", und sysservers enthielt die folgenden Informationen:
   srvid srvstatus      srvname            srvnetname   ----- ---------      ---------------    ------------    ...   1     1              SERV_LOCAL         SERV_LOCAL   2     1              SERV_REMOTE        SERV_REMOTE 
In der vorhergehenden Ausgabe ist SERV_LOCAL der lokale Server, hat aber eine srvid von 1; Es sollte 0 sein. Führen Sie die folgenden Schritte aus, um dies zu beheben:
  1. Führen Sie sp_dropserver local_server_namedroplogins (in diesem Beispiel würden Sie sp_dropserver SERV_LOCAL, droplogins) ausführen.
  2. Führen Sie sp_addserver local_server_name, lokal aus (in diesem Beispiel würden Sie sp_addserver SERV_LOCAL, lokal) ausführen.
  3. Beenden und Neustarten von SQL Server.
Nachdem Sie diese Schritte ausgeführt haben, sollte die sysservers -Tabelle wie folgt aussehen:
   srvid srvstatus      srvname            srvnetname   ----- ---------      ---------------    ------------    ...   0     0              SERV_LOCAL         SERV_LOCAL   2     1              SERV_REMOTE        SERV_REMOTE 
Beachten Sie, dass die Server-ID (srvid) für den lokalen Server 0 sein sollte.

Weitere Informationen


Wenn Sie die Replikation installieren, wird möglicherweise diese Fehlermeldung angezeigt, da der Installationsvorgang Remoteprozeduraufrufe zwischen den an der Replikation beteiligten Servern vornimmt.