Reporting Services와 인터넷 정보 서비스 함께 배포

SQL Server 2008 R2 Reporting Services와 인터넷 정보 서비스(IIS)를 같은 컴퓨터에 설치하고 실행할 수 있습니다. 사용하는 IIS 버전에 따라 해결해야 하는 상호 운용성 문제가 결정됩니다.

IIS 버전

문제

설명

IIS 6.0 및 7.0

한 응용 프로그램을 대상으로 하는 요청이 다른 응용 프로그램에 받아들여집니다.

HTTP.SYS는 URL 예약에 대한 선행 규칙을 적용합니다. URL 예약이 다른 응용 프로그램의 URL 예약에 비해 약한 경우에는 가상 디렉터리 이름이 동일하며 포트 80을 함께 모니터링하는 응용 프로그램으로 전송된 요청이 의도한 대상에 도달하지 않을 수 있습니다.

상황에 따라 URL 예약 스키마의 다른 URL 끝점을 대체하는 등록된 끝점이 다른 응용 프로그램을 대상으로 하는 HTTP 요청을 받을 수 있습니다.

보고서 서버 웹 서비스 및 보고서 관리자에 고유한 가상 디렉터리 이름을 사용하면 이러한 충돌이 발생하지 않도록 할 수 있습니다.

이 시나리오에 대한 자세한 내용은 이 항목에 제공되어 있습니다.

IIS 5.1

포트 충돌

기본적으로 IIS 5.1은 배타적으로 사용하기 위해 포트 80을 예약합니다. 32비트 Windows XP(SP2)에 SQL Server 2008 R2 Reporting Services를 설치하는 경우 Reporting Services URL의 기본 포트는 포트 8080이 됩니다.

http://<servername>:8080/reportserver

http://<servername>:8080/reports

64비트 플랫폼에서 Reporting Services URL의 기본 포트는 포트 80입니다. IIS 5.1은 64비트 버전의 Windows XP SP2의 HTTP.SYS를 사용하므로 포트 80을 두 응용 프로그램이 공유할 수 있습니다.

URL 예약에 대한 선행 규칙

IIS와 Reporting Services 간 상호 운용성 문제를 해결하려면 먼저 URL 예약 선행 규칙을 이해해야 합니다. 선행 규칙은 다음과 같이 일반화할 수 있습니다. 보다 명시적으로 정의된 값이 있는 URL 예약은 URL과 일치하는 요청을 처음으로 받습니다. 

  • 가상 디렉터리를 지정하는 URL 예약은 가상 디렉터리를 생략하는 URL 예약보다 명시적입니다.

  • IP 주소, 정규화된 도메인 이름, 네트워크 컴퓨터 이름 또는 호스트 이름을 통해 단일 주소를 지정하는 URL 예약은 와일드카드보다 명시적입니다.

  • 강력한 와일드카드를 지정하는 URL 예약은 약한 와일드카드보다 명시적입니다.

다음 예에서는 가장 명시적인 것부터 차례로 URL 예약의 범위를 보여 줍니다.

요청

http://123.234.345.456:80/reports

도메인 이름 서비스가 해당 호스트 이름에 대한 IP 주소를 확인할 수 있는 경우 http://123.234.345.456/reports 또는 http://<computername>/reports로 전송된 모든 요청을 받습니다.

http://+:80/reports

URL에 "reports" 가상 디렉터리 이름이 포함되어 있는 한 해당 컴퓨터에 대해 유효한 IP 주소 또는 호스트 이름으로 전송된 모든 요청을 받습니다.

http://123.234.345.456:80

도메인 이름 서비스가 해당 호스트 이름에 대한 IP 주소를 확인할 수 있는 경우 http://123.234.345.456 또는 http://<computername>을 지정하는 모든 요청을 받습니다.

http://+:80

모두 할당됨에 매핑된 응용 프로그램 끝점에 대해 다른 응용 프로그램이 아직 받지 않은 요청을 받습니다.

http://*:80

모두 할당되지 않음에 매핑된 응용 프로그램 끝점에 대해 다른 응용 프로그램이 아직 받지 않은 요청을 받습니다.

포트가 충돌하면 'System.IO.FileLoadException: 다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스 할 수 없습니다. (HRESULT에서 예외가 발생했습니다: 0x80070020).'라는 오류 메시지가 나타납니다.

IIS 6.0 및 7.0과 SQL Server 2008 Reporting Services에 대한 URL 예약

이전 섹션에 요약된 우선 순위 규칙을 기반으로 Reporting Services 및 IIS에 대해 정의된 URL 예약이 상호 운용성을 향상시키는 방식을 이해할 수 있습니다. Reporting Services는 해당 응용 프로그램의 가상 디렉터리 이름을 명시적으로 지정하는 요청을 받습니다. IIS는 나머지 요청을 모두 받은 다음 이를 IIS 프로세스 모델 내에서 실행되는 응용 프로그램으로 전송할 수 있습니다.

응용 프로그램

URL 예약

설명

요청 수신

보고서 서버

http://+:80/ReportServer

포트 80에서 ReportServer 가상 디렉터리가 있는 강력한 와일드카드입니다.

포트 80에서 ReportServer 가상 디렉터리를 지정하는 모든 요청을 받습니다. 보고서 서버 웹 서비스는 http://<computername>/reportserver에 대한 모든 요청을 받습니다.

보고서 관리자

http://+:80/Reports

포트 80에서 Reports 가상 디렉터리가 있는 강력한 와일드카드입니다.

포트 80에서 Reports 가상 디렉터리를 지정하는 모든 요청을 받습니다. 보고서 관리자는 http://<computername>/reports에 대한 모든 요청을 받습니다.

IIS

http://*:80/

포트 80의 약한 와일드카드입니다.

포트 80에서 다른 응용 프로그램이 받지 않은 모든 나머지 요청을 받습니다.

IIS 6.0 또는 7.0에 SQL Server 2008과 SQL Server 2005 Reporting Services 함께 배포

IIS와 Reporting Services 간 상호 운용성 문제는 IIS 웹 사이트의 가상 디렉터리 이름이 Reporting Services에 사용되는 가상 디렉터리 이름과 같을 경우 발생합니다. 예를 들어 다음과 같은 구성이 있다고 가정합니다.

  • 포트 80에 할당된 IIS의 웹 사이트 및 "Reports"라는 가상 디렉터리

  • 기본 구성으로 설치된 SQL Server 2008 R2 보고서 서버 인스턴스. 여기서 URL 예약은 포트 80을 지정하며 보고서 관리자 응용 프로그램도 가상 디렉터리 이름으로 "Reports"를 사용합니다.

구성이 이와 같을 때 http://<computername>:80/reports로 전송된 요청은 보고서 관리자가 받게 됩니다. IIS의 Reports 가상 디렉터리를 통해 액세스되는 응용 프로그램은 SQL Server 2008 R2 보고서 서버 인스턴스가 설치된 후 더 이상 요청을 받지 않습니다.

이전 버전 및 최신 버전의 Reporting Services 배포를 함께 실행하는 경우 방금 설명한 라우팅 문제가 발생할 가능성이 높습니다. 이는 모든 버전의 Reporting Services가 "ReportServer" 및 "Reports"를 보고서 서버 및 보고서 관리자 응용 프로그램의 가상 디렉터리 이름으로 사용하여 IIS에 "reports" 및 "reportserver" 가상 디렉터리가 있을 가능성이 높아지기 때문입니다.

모든 응용 프로그램이 요청을 받도록 하려면 다음 지침을 따릅니다.

  • Reporting Services 설치의 경우 Reporting Services와 동일한 포트에서 IIS 웹 사이트에 아직 사용되지 않은 가상 디렉터리 이름을 사용합니다. 충돌이 발생하면 설치 완료 후 가상 디렉터리를 구성할 수 있도록 Reporting Services를 "파일만" 모드로 설치합니다(설치를 사용하지만 설치 마법사에서 서버 옵션 구성 안 함). 구성이 충돌하면 System.IO.FileLoadException: 다른 프로세스가 파일을 사용 중이기 때문에 프로세스가 액세스 할 수 없습니다. (HRESULT에서 예외가 발생했습니다: 0x80070020)라는 오류 메시지가 나타납니다.

  • 수동으로 구성하는 설치의 경우 구성하는 URL에 기본 명명 규칙을 적용합니다. SQL Server 2008 R2 Reporting Services를 명명된 인스턴스로 설치하는 경우 가상 디렉터리를 만들 때 인스턴스 이름을 포함합니다.

Windows XP SP2에서 IIS 5.1과의 상호 운용성

Windows XP SP2는 Reporting Services에 필요한 HTTP.SYS 구성 요소를 제공합니다. 그러나 운영 체제에서 HTTP.SYS를 사용할 수 있어도 IIS 5.1은 해당 구성 요소를 사용하지 않습니다. 대신 IIS 5.1은 포트 80 또는 사용하도록 구성된 포트의 모든 요청을 받습니다. HTTP.SYS에는 IIS 5.1에 대한 URL 예약이 없으므로 Reporting Services 웹 응용 프로그램이 같은 포트에서 요청을 받을 수 있도록 하는 요청 큐를 중앙에서 관리할 수 없습니다.

따라서 32비트 Windows XP SP2에 설치된 보고서 서버의 기본 구성은 보고서 서버 웹 서비스 및 보고서 관리자에 대해 포트 8080을 사용하는 것입니다. 다음 표에서는 웹 서비스 및 보고서 관리자에 대한 URL 예약을 보여 줍니다.

  • http://+:8080/reportserver

  • http://+:8080/reports

Reporting Services 응용 프로그램에 대한 URL 예약에 기본이 아닌 포트를 사용하면 이전 버전의 Reporting Services를 함께 사용하는 시나리오에서 URL 충돌이 발생하지 않습니다.

같은 컴퓨터에 이전 및 최신 보고서 서버 인스턴스가 설치되어 있으면 기본 URL은 IIS를 통해 액세스되는 Reporting Services 2005 보고서 서버의 경우 http://<servername>/<reportserver>이고 SQL Server 2008 R2 Reporting Services 보고서 서버의 경우 http://<servername>:8080/<reportserver>입니다.