Compartilhar via


Diretrizes e limitações dos XML Web Services Nativos

Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam.

As diretrizes e limitações a seguir se aplicam a solicitações dos XML Web Services Nativos:

  • Quando uma sessão sem nome de SOAP (sessões sem nome de SOAP existem pelo tempo de duração de apenas uma solicitação) solicita notificação de transação e inclui a instrução BEGIN TRANSACTION, mas não a instrução COMMIT TRANSACTION ou ROLLBACK TRANSACTION, o servidor reverte a transação, mas não inclui o nó de notificação da transação de reversão na resposta do SOAP.

  • O suporte a XML Web Services Nativos está disponível apenas em instâncias do SQL Server que estejam sendo executadas em versões do sistema operacional Windows que dão suporte à API HTTP (Http.sys). Se você tentar implementar os XML Web Services Nativos em uma instância do SQL Server que não atenda a este requisito do sistema operacional e não dê suporte a Http.sys, as operações de Linguagem de Definição de Dados falharão e nenhuma escuta nativa ocorrerá.

  • Se a instância do SQL Server estiver sendo executada no Windows XP Professional, talvez você não consiga criar pontos de extremidade com êxito. Por exemplo, se o IIS (Serviços de Informações da Internet) estiver em execução, a tentativa para executar uma instrução CREATE ENDPOINT falhará, retornando o seguinte erro: "Erro ('0x80070020') ao tentar registrar o ponto de extremidade 'endpointName'".

    Esse erro indica que um conflito de processo entre a instância do SQL Server e o IIS ocorre porque o IIS escuta na porta 80 no Windows XP. Para resolver este problema, faça o seguinte:

    • Pare o serviço da World Wide Web

    • Tente novamente executar CREATE ENDPOINT usando um número de porta diferente da porta 80.

  • Você pode configurar pontos de extremidade para usar várias portas, mas não pode especificar duas portas do mesmo tipo. Por exemplo, você pode especificar uma porta não criptografada e uma porta SSL, mas não duas portas não criptografadas ou duas portas SSL.

  • As funções definidas pelo usuário com valor de tabela não são aceitas.

  • SOAP não dá suporte à exposição de procedimentos armazenados estendidos como métodos da Web.

  • Você não pode desabilitar pontos de extremidade que não sejam HTTP (o estado para um ponto de extremidade pode ser definido como desabilitado somente para pontos de extremidade HTTP).

  • Embora a especificação de SOAP proíba explicitamente instruções de processamento de XML em solicitações e respostas de SOAP, o SQL Server não impõe esta restrição. Se PIs (instruções de processamento) estiverem presentes no envolvimento de uma solicitação de SOAP, o servidor as ignorará. Se as PIs aparecerem no conteúdo de um parâmetro XML, elas continuarão como parte dos dados de XML. As respostas de SOAP não devem conter instruções de processamento, a menos que elas façam parte de um parâmetro XML recuperado. Uma implicação deste comportamento é que os aplicativos cliente SOAP podem não aceitar um valor de instância da linha de tipo de dados xml que contenha PIs, ou os aplicativos poderão retirar PIs que estejam contidas no XML com tipo retornado pelo SQL Server. Se este for um cenário importante, você poderá criar serviços Web que convertam qualquer tipo de dados xml no tipo NVarChar ou VarBinary antes de o serviço enviá-los novamente para os clientes SOAP.

  • Para obter melhor interoperabilidade com Visual Studio 2005, verifique se todos os namespaces usados em métodos da Web de ponto de extremidade são diferentes de todos os namespaces usados com os esquemas de tipo de dados xml que são também usados no ponto de extremidade.

  • Os resultados de WSDL retornados por um ponto de extremidade podem incluir um esquema XSD que não seja válido, como quando um namespace único é importado mais de uma vez em qualquer um dos seguintes cenários:

    • O ponto de extremidade contém vários parâmetros do tipo XML que fazem referência a diferentes coleções de esquema, e cada uma delas define o mesmo namespace.

    • O ponto de extremidade contém um parâmetro do tipo XML que faz referência a um URI de namespace predefinido para usar com os XML Web Services Nativos no SQL Server. Os URIs de namespace predefinidos aos quais este cenário pode se aplicar incluem aqueles listados na tabela a seguir.

      Prefixo

      URI de namespace

      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