Richtlinien und Einschränkungen für die Verwendung der systemeigenen XML-Webdienste
Diese Funktion wird in zukünftigen Versionen von Microsoft SQL Server nicht mehr bereitgestellt. Verwenden Sie diese Funktion beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird.
Für systemeigene XML-Webdienstanforderungen gelten die folgenden Richtlinien und Einschränkungen:
Wenn eine unbenannte SOAP-Sitzung (unbenannte SOAP-Sitzungen sind nur für die Dauer einer Anforderung vorhanden) die Transaktionsbenachrichtigung anfordert und die BEGIN TRANSACTION-Anweisung aber nicht die COMMIT TRANSACTION- oder ROLLBACK TRANSACTION-Anweisung einschließt, führt der Server zwar ein Rollback der Transaktion aus, schließt jedoch in die SOAP-Antwort nicht den Rollback-Transaktionsbenachrichtigungsknoten ein.
Die Unterstützung für systemeigene XML-Webdienste ist nur auf Instanzen von SQL Server verfügbar, die auf Versionen der Windows-Betriebssysteme ausgeführt werden, die die HTTP-API (Http.sys) unterstützen. Wenn Sie versuchen, die systemeigenen XML-Webdienste auf einer Instanz von SQL Server bereitzustellen, die dieser betriebssystemspezifischen Anforderung nicht gerecht wird und Http.sys nicht unterstützt, schlagen DLL-Vorgänge (Data Definition Language) fehl, und es erfolgt kein systemeigenes Abfragen.
Wenn die Instanz von SQL Server unter Windows XP Professional ausgeführt wird, ist es eventuell nicht möglich, Endpunkte erfolgreich zu erstellen. Wenn z. B. Internetinformationsdienste (IIS, Internet Information Services) ausgeführt wird, wird für jeden Versuch, eine CREATE ENDPOINT-Anweisung auszuführen, der folgende Fehler zurückgegeben: "Fehler ('0x80070020') beim Registrieren des Endpunkts 'endpointName'".
Dieser Fehler zeigt an, dass ein Prozesskonflikt zwischen der Instanz von SQL Server und IIS auftritt, weil IIS unter Windows XP den Port 80 überwacht. Führen Sie folgende Schritte aus, um dieses Problem zu umgehen:
Halten Sie den WWW-Dienst an.
Versuchen Sie, CREATE ENDPOINT mit einer anderen Anschlussnummer als 80 auszuführen.
Sie können Endpunkte so konfigurieren, dass diese mehrere Anschlüsse verwenden, Sie können dabei jedoch keine zwei Anschlüsse desselben Typs angeben. So können Sie z. B. einen Clear-Anschluss und einen SSL-Anschluss angeben, jedoch nicht zwei Clear-Anschlüsse oder zwei SSL-Anschlüsse.
Es werden keine benutzerdefinierten Funktionen mit Tabellenwertrückgabe unterstützt.
SOAP unterstützt nicht die Bereitstellung erweiterter gespeicherter Prozeduren als Webmethoden.
Nicht-HTTP-Endpunkte können nicht deaktiviert werden (der Status eines Endpunkts kann nur bei HTTP-Endpunkten auf deaktiviert festgelegt werden).
Obwohl die SOAP-Anweisung explizit keine XML-Verarbeitungsanweisungen in SOAP-Anforderungen und -Antworten zulässt, wird diese Einschränkung von SQL Server nicht erzwungen. Wenn Verarbeitungsanweisungen (PIs, Processing Instructions) im Umschlag einer SOAP-Anforderung vorhanden sind, werden sie vom Server ignoriert. Wenn PIs in den Inhalten eines XML-Parameters angezeigt werden, werden sie als Bestandteil der XML-Daten beibehalten. SOAP-Antworten sollten keine Verarbeitungsanweisungen enthalten, sofern sie Bestandteil eines abgerufenen XML-Parameters sind. Eine Auswirkung dieses Verhaltens ist, dass SOAP-Clientanwendungen möglicherweise einen Zeileninstanzwert des xml-Datentyps, der PIs enthält, nicht akzeptiert, oder dass die Anwendungen möglicherweise PIs entfernen, die in dem von SQL Server zurückgegebenen XML-Code enthalten sind. Wenn es sich dabei um ein wichtiges Szenario handelt, können Sie Webdienste erstellen, mit denen alle xml-Datentypen zu NVarChar- oder VarBinary-Typen konvertiert werden, bevor der Dienst sie zurück an die SOAP-Clients sendet.
Um eine bessere Interoperabilität mit Visual Studio 2005 zu gewährleisten, müssen Sie sicherstellen, dass alle in Endpunkt-Webmethoden verwendeten Namespaces sich von allen Namespaces unterscheiden, die mit xml-Datentypschemen verwendet werden, die gleichzeitig auf dem Endpunkt verwendet werden.
WSDL-Ergebnisse, die von einem Endpunkt zurückgegeben werden, können ein ungültiges XSD-Schema enthalten, z. B. wenn ein einzelner Namespace in einem der folgenden Szenarien mehrfach importiert wird:
Der Endpunkt enthält mehrere Parameter des XML-Typs, die auf verschiedene Schemaauflistungen verweisen, die jeweils denselben Namespace definieren.
Der Endpunkt enthält einen Parameter des XML-Typs, der auf einen Namespace-URI verweist, der für die Verwendung mit den systemeigenen XML-Webdiensten in SQL Server vordefiniert ist. Die vordefinierten Namespace-URIs, auf die dieses Szenario zutreffen kann, sind in der folgenden Tabelle aufgeführt.
Präfix
Namespace-URI
sql
https://schemas.microsoft.com/sqlserver/2004/SOAP
sqloptions
https://schemas.microsoft.com/sqlserver/2004/SOAP/Options
sqlsoaptypes
https://schemas.microsoft.com/sqlserver/2004/SOAP/types
sqlmessage
https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlMessage
sqlparameter
https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlParameter
sqlresultstream
https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlResultStream
sqlrowcount
https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlRowCount
sqltransaction
https://schemas.microsoft.com/sqlserver/2004/SOAP/types/SqlTransaction
sqltypes
https://schemas.microsoft.com/sqlserver/2004/sqltypes
xml
http://www.w3.org/XML/1998/namespace
xsd
http://www.w3.org/2001/XMLSchema
xsi
http://www.w3.org/2001/XMLSchema-instance
Siehe auch