연습: 원격 서버의 구독 관리 인터페이스 배포
인터넷 기반 알림 응용 프로그램의 경우 일반적으로 기존 인터넷 정보 서비스(IIS) 웹 서버에 구독 관리 인터페이스를 배포합니다.
이 시나리오에서는 원격 IIS 서버에서 ASP.NET 기반 구독 관리 인터페이스를 배포하는 방법을 보여 줍니다. 이 시나리오에서는 사용 중인 구독 관리 인터페이스가 Microsoft SQL Server에 연결하는 데 사용하는 도메인 계정이 필요합니다. 이 항목의 절차는 이러한 로그인 계정을 만들고 필요한 권한을 부여하는 방법을 보여 줍니다.
필수 구성 요소
ASP.NET 기반 구독 관리 인터페이스를 배포하기 전에 다음의 모든 필수 구성 요소가 충족되었는지 확인합니다.
Microsoft Windows를 설치하고 IIS 구성 요소를 추가하고 ASP.NET을 설정했습니다. 자세한 내용은 Windows 설명서를 참조하십시오.
사용자 또는 도메인 관리자가 ASP.NET 기반 인터페이스에서 사용하는 도메인 계정을 미리 만들어 놓아야 합니다. 이 작업은 원격 서버의 인터페이스가 Windows 인증을 사용하여 SQL Server에 연결할 수 있도록 하기 위해 필요합니다. 이 연습에서는 도메인 계정을 DOMAIN\WebApp로 지칭합니다.
[!참고] SQL Server 인증을 사용할 수 있지만 Microsoft에서는 Windows 인증을 권장합니다.
IIS에 응용 프로그램이 추가되어 있어야 하며 이 응용 프로그램에 대한 보안은 구성되어 있지 않아야 합니다.
Notification Services 인스턴스가 미리 배포되어 데이터베이스 서버에 인스턴스 및 응용 프로그램 데이터베이스가 생성되어 있어야 합니다.
데이터베이스 엔진에서 TCP/IP 또는 명명된 파이프 네트워크 프로토콜이 설정되어야 합니다. SQL Server 2005에서는 이러한 네트워크 프로토콜이 기본적으로 해제됩니다. 자세한 내용은 SQL Server 노출 영역 구성을 참조하십시오.
IIS 서버 작업
웹 서버에서 다음 단계를 수행하십시오.
1단계: Notification Services 클라이언트 구성 요소 설치
Notification Services 클라이언트 구성 요소를 설치합니다.
구성 요소를 설치하는 방법은 SQL Server Notification Services 설치를 참조하십시오.
2단계: 인스턴스 등록
시작 메뉴에서 모든 프로그램, Microsoft SQL Server 2005, Notification Services를 차례로 가리킨 다음 Notification Services 명령 프롬프트를 클릭하여 Notification Services 명령 프롬프트 창을 엽니다.
다음 명령을 입력하여 인스턴스를 등록합니다.
nscontrol register -nameinstanceName-serverdatabaseServer
다음 절차를 위해 명령 프롬프트 창을 열어 두십시오.
3단계: ASP.NET 기반 응용 프로그램에 대해 보안 구성
Machine.config 파일을 엽니다. 이 파일은 %windir%\Microsoft.NET\Framework\vn.n.nnnn\CONFIG에 있습니다.
processModel 요소를 찾습니다. 이 요소에는 userName 및 password를 비롯한 여러 특성이 있습니다.
userName 값을 DOMAIN\WebApp로 설정하고 password 값을 이 계정의 암호로 설정합니다. 이 요소는 다음과 같이 표시됩니다.
<processModel ... userName="DOMAIN\WebApp" password="aspnet_password" ... />
Machine.config 파일을 저장합니다.
DOMAIN\WebApp 계정에 %windir%Microsoft.NET\Framework\vn.n.nnnn\Temporary ASP.NET Files 폴더에 대한 모든 권한을 부여합니다.
폴더에 사용 권한을 부여하는 방법에 대한 자세한 내용은 Windows 설명서를 참조하십시오.
IIS를 다시 시작하여 변경 내용을 적용합니다.
데이터베이스 서버 작업
DOMAIN\WebApp 계정에 SQL Server 및 데이터베이스 사용 권한을 부여해야 합니다. 호스팅되지 않은 이벤트 공급자 서버에 SQL Server 워크스테이션 구성 요소를 설치한 경우 해당 서버에서 다음 단계를 수행할 수 있습니다.
SQL Server 및 데이터베이스 사용 권한 부여
명령 프롬프트 창을 엽니다.
다음 명령을 입력하여 DOMAIN\WebApp 계정에 대한 SQL Server 로그인을 만듭니다.
sqlcmd -E -S databaseServer -Q "CREATE LOGIN [DOMAIN\WebApp] FROM WINDOWS;"
다음 명령을 입력하여 DOMAIN\WebApp 계정에 인스턴스 데이터베이스에 대한 액세스 권한을 부여하고 NSSubscriberAdmin 데이터베이스 역할에 해당 계정을 추가합니다.
sqlcmd -E -SdatabaseServer-Q "USEinstanceDatabase;
CREATE USER [DOMAIN\WebApp];
EXEC sp_addrolemember N'NSSubscriberAdmin', N'DOMAIN\WebApp';"
응용 프로그램에 대해 별도의 데이터베이스가 있는 경우 다음 명령을 입력하여 응용 프로그램 데이터베이스에 DOMAIN\WebApp 계정 액세스 권한을 부여하고 NSSubscriberAdmin 데이터베이스 역할에 해당 계정을 추가합니다.
sqlcmd -E -S databaseName -Q "USE applicationDatabase;
CREATE USER [DOMAIN\WebApp];
EXEC sp_addrolemember N'NSSubscriberAdmin', N'DOMAIN\WebApp';"
인스턴스가 여러 응용 프로그램을 호스팅하는 경우 각 응용 프로그램 데이터베이스에 대해 이 단계를 반복합니다.
이제 구독 관리 응용 프로그램을 사용하여 Notification Services 인스턴스에 대한 구독자 및 구독을 관리할 수 있습니다.
문제 해결
구독자 및 구독을 관리할 수 없으면 Notification Services 명령 프롬프트에서 다음 명령을 실행하여 인스턴스의 상태를 확인합니다.
nscontrol status-name instanceName
구독자 및 구독 관리가 설정되어 있는지 확인합니다. 자세한 내용은 인스턴스, 응용 프로그램 및 구성 요소의 상태 보기를 참조하십시오.
또한 Windows 응용 프로그램 로그에서 오류를 확인합니다. 자세한 내용은 Notification Services 문제 해결을 참조하십시오.
참고 항목
개념
Notification Services 인스턴스 배포
호스팅되지 않은 이벤트 공급자 배포