Instructions et restrictions d'emploi en vigueur dans les services Web XML natifs
Cette fonctionnalité sera supprimée dans une prochaine version de Microsoft SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité.
Les instructions et les restrictions d'emploi suivantes s'appliquent aux requêtes des services Web XML natifs :
Si une session SOAP sans nom (ces sessions existent pendant la durée d'une seule demande) fait une demande de notification de transaction et inclut l'instruction BEGIN TRANSACTION mais pas l'instruction COMMIT TRANSACTION ou ROLLBACK TRANSACTION, le serveur annule la transaction mais n'inclut pas le nœud de notification de transaction d'annulation dans la réponse SOAP.
Les services Web XML natifs sont uniquement pris en charge par les instances de SQL Server installées sur des versions du système d'exploitation Windows qui prennent en charge l'API HTTP (Http.sys). Si vous essayez de déployer les services Web XML natifs sur une instance de SQL Server qui ne remplissent pas ce critère, les opérations du langage de définition des données échoueront et aucune écoute native n'aura lieu.
Si l'instance de SQL Server s'exécute sur Windows XP Professionnel, il se peut que vous ne puissiez pas créer de points de terminaison. Par exemple, si les services IIS (Internet Information Services) sont actifs, toute tentative d'exécution d'une instruction CREATE ENDPOINT échouera et retournera l'erreur suivante : « Une erreur ('0x80070020') s'est produite lors de la tentative d'enregistrement du point de terminaison 'endpointName'. »
Cette erreur signale un conflit entre l'instance de SQL Server et les services IIS dû au fait que les services IIS écoutent sur le port 80 sous Windows XP. Pour contourner ce problème, procédez comme suit :
Arrêtez le service World Wide Web.
Réessayez d'exécuter CREATE ENDPOINT en utilisant un port autre que le port 80.
Vous pouvez configurer les points de terminaison pour qu'ils utilisent plusieurs ports, mais vous ne pouvez pas spécifier deux ports du même type. Par exemple, vous pouvez spécifier un port non sécurisé et un port SSL, mais pas deux ports non sécurisés ou deux ports SSL.
Les fonctions table définies par l'utilisateur ne sont pas prises en charge.
SOAP ne prend pas en charge l'exposition des procédures stockées étendues en tant que méthodes Web.
Vous ne pouvez pas désactiver des points de terminaison non-HTTP (seuls les points de terminaison HTTP peuvent être désactivés).
Bien que la spécification SOAP interdise explicitement les instructions de traitement XML dans les demandes et les réponses SOAP, SQL Server n'impose pas cette restriction. Si des instructions de traitement sont présentes dans l'enveloppe d'une demande SOAP, le serveur les ignore. Si ces instructions apparaissent dans le contenu d'un paramètre XML, elles sont conservées comme faisant partie des données XML. Les réponses SOAP ne peuvent pas contenir d'instructions de traitement à moins que celles-ci ne fassent partie d'un paramètre XML récupéré. Ce comportement implique notamment que les applications clients SOAP ne puissent pas accepter une valeur d'instance de ligne de type xml qui contient des instructions de traitement, ou suppriment ces instructions du XML typé retourné par SQL Server. Si ce scénario est important pour vous, vous pouvez créer des services Web qui convertissent les données xml en NVarChar ou VarBinary avant que le service ne les renvoient aux clients SOAP.
Pour une meilleure interopérabilité avec Visual Studio 2005, vérifiez que les espaces de noms utilisés dans les méthodes Web et dans les schémas de type xml du point de terminaison sont différents.
Les résultats WSDL retournés pas un point de terminaison peuvent inclure un schéma XSD non valide, comme lorsqu'un espace de noms unique est importé plus d'une fois dans un des scénarios suivants :
Le point de terminaison contient plusieurs paramètres de type XML qui font référence à différentes collections de schémas qui définissent toutes le même espace de noms.
Le point de terminaison contient un paramètre de type XML qui fait référence à un URI d'espace de noms prédéfini pour être utilisé avec les services Web XML natifs dans SQL Server. Le tableau suivant répertorie les URI d'espaces de noms prédéfinis qui pourraient être concernés par ce scénario.
Préfixe
URI d'espace de noms
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
Voir aussi