네이티브 XML 웹 서비스의 지침 및 제한 사항

Microsoft SQL Server의 이후 버전에서는 이 기능이 제거됩니다. 새 개발 작업에서는 이 기능을 사용하지 않도록 하고, 현재 이 기능을 사용하는 응용 프로그램은 수정하십시오.

다음은 네이티브 XML 웹 서비스 요청에 적용되는 지침과 제한 사항입니다.

  • 명명되지 않은 세션 SOAP(명명되지 않은 세션 SOAP은 하나의 요청 기간에 대해서만 존재)는 트랜잭션 알림을 요청하고 BEGIN TRANSACTION 문을 포함하지만 COMMIT TRANSACTION이나 ROLLBACK TRANSACTION 문은 포함하지 않습니다. 서버는 트랜잭션을 롤백하지만 SOAP 응답에서 롤백 트랜잭션 알림 노드는 포함하지 않습니다.

  • 네이티브 XML 웹 서비스는 HTTP API(Http.sys)를 지원하는 Windows 운영 체제 버전에서 실행되는 SQL Server 인스턴스에서만 지원됩니다. 이러한 운영 체제 요구 사항에 맞지 않고 Http.sys를 지원하지 않는 SQL Server 인스턴스에서 네이티브 XML 웹 서비스를 배포하려고 하면 데이터 정의 언어 작업이 실패하고 네이티브 수신이 이루어지지 않습니다.

  • Windows XP Professional에서 SQL Server 인스턴스를 실행하는 경우 끝점을 만들지 못할 수 있습니다. 예를 들어 인터넷 정보 서비스(IIS)가 실행되고 있는 경우 CREATE ENDPOINT 문을 실행하려고 하면 "끝점 'endpointName'을(를) 등록하는 동안 오류('0x80070020')가 발생했습니다"라는 오류가 반환되며 작업이 실패합니다.

    이 오류는 Windows XP에서 IIS가 포트 80을 통해 수신하기 때문에 SQL Server 인스턴스와 IIS 간에 프로세스 충돌이 발생했음을 의미합니다. 이 문제를 해결하려면 다음을 수행하십시오.

    • World Wide Web 서비스를 중지합니다.

    • 포트 80 이외의 포트 번호를 사용하여 CREATE ENDPOINT 문을 다시 실행합니다.

  • 여러 포트를 사용하도록 끝점을 구성할 수는 있지만 동일한 유형의 포트 2개를 지정할 수는 없습니다. 예를 들어 빈 포트 하나와 SSL 포트 하나를 지정할 수는 있지만 빈 포트 2개 또는 SSL 포트 2개를 지정할 수는 없습니다.

  • 테이블 반환 사용자 정의 함수는 지원되지 않습니다.

  • SOAP는 확장 저장 프로시저를 웹 메서드로 지원하지 않습니다.

  • 비-HTTP 끝점을 비활성화할 수 없습니다. 즉, HTTP 끝점의 경우에만 끝점 상태를 비활성화하도록 설정할 수 있습니다.

  • SOAP 사양에서는 SOAP 요청 및 응답에서의 XML 처리 명령 사용을 명시적으로 허용하지 않지만 SQL Server에서는 이러한 제한을 적용하지 않습니다. SOAP 요청 Envelope에 PI(처리 명령)가 포함되어 있으면 서버에서 무시됩니다. XML 매개 변수의 내용 안에 PI가 들어 있으면 XML 데이터의 일부로 유지됩니다. 처리 명령이 검색된 XML 매개 변수의 일부가 아닌 경우에는 SOAP 응답에 이 처리 명령이 포함되어서는 안 됩니다. 이러한 동작은 SOAP 클라이언트 응용 프로그램이 PI가 포함된 xml 데이터 형식 행 인스턴스 값을 허용하지 않을 수도 있고 SQL Server에서 반환한 XML 유형에 포함된 PI를 제거할 수도 있다는 것을 의미합니다. 이러한 시나리오가 문제가 되는 경우에는 SOAP 클라이언트로 데이터를 반환하기 전에 모든 xml 데이터 형식을 NVarChar 또는 VarBinary 형식으로 변환하는 웹 서비스를 작성하면 됩니다.

  • Visual Studio 2005와의 상호 운용성을 높이려면 끝점 웹 메서드에 사용된 모든 네임스페이스가 역시 끝점의 xml 데이터 형식 스키마에 사용된 네임스페이스와 다르게 되어 있는지 확인합니다.

  • 끝점에서 반환한 WSDL 결과에는 잘못된 XSD 스키마가 포함될 수 있습니다. 이러한 문제는 다음과 같은 시나리오에서 단일 네임스페이스를 두 번 이상 가져오는 경우에 발생할 수 있습니다.

    • 모두 동일한 네임스페이스를 정의하는 서로 다른 스키마 컬렉션을 참조하는 XML 유형의 매개 변수가 끝점에 여러 개 포함되어 있는 경우

    • SQL Server의 네이티브 XML 웹 서비스에 사용하도록 미리 정의된 네임스페이스 URI를 참조하는 XML 유형의 매개 변수가 끝점에 포함되어 있는 경우. 이 시나리오에 해당하는 미리 정의된 네임스페이스 URI는 다음 표에 나열되어 있습니다.

      접두사

      네임스페이스 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