RIA Services 솔루션 배포 가이드
이 항목에서는 WCF RIA Services 응용 프로그램을 웹 서버에 배포할 때 수행해야 하는 작업에 대해 설명합니다. 웹 서버에 배포하려면 서버에 .NET Framework 4와 IIS(인터넷 정보 서버) 6 또는 7을 설치하여 응용 프로그램을 호스팅해야 합니다. RIA Services 는 웹 서버에서 대부분 사용할 수 있지만 서버에 설치하지 못할 수도 있으므로 다른 배포 옵션에 대해서도 설명합니다. 성공적인 배포를 위해 ASP.NET 웹 응용 프로그램이 올바르게 구성되어 있어야 하며 Web.config에 필요한 설정이 설명되어 있습니다. 마지막으로 게시 절차에 대해 설명합니다.
RIA Services 응용 프로그램을 배포할 때 발생할 수 있는 문제와 이를 해결하기 위한 권장 방법은 RIA Services 솔루션 배포 문제 해결 항목에서 설명합니다.
.NET Framework 4가 웹 서버에 설치되어 있는지 확인
RIA Services 응용 프로그램이 작동하려면 웹 서버에 .NET Framework 4가 설치되어 있어야 합니다. 자세한 내용은 .NET Framework 설치를 참조하십시오.
IIS가 웹 서버에 설치되어 있는지 확인
RIA Services 응용 프로그램이 작동하려면 웹 서버에 IIS(인터넷 정보 서버) 6 또는 7이 설치되어 있어야 합니다. 자세한 내용은 IIS 7 설치 및 배포와 IIS 6.0 설치를 참조하십시오.
웹 서버에 RIA Services 설치
RIA Services 어셈블리를 웹 서버에서 사용할 수 있어야 합니다. 응용 프로그램을 호스팅하는 웹 서버에 RIA Services 를 설치하는 것이 좋습니다. 권한 부족이나 다른 문제로 인해 이렇게 할 수 없는 경우 웹 서버가 게시될 때 프로젝트의 bin 폴더에 포함하거나 GAC(전역 어셈블리 캐시)에 설치하여 웹 서버에서 사용할 수 있도록 해야 합니다.
Bin 배포
응용 프로그램을 배포할 때 한 가지 옵션은 프로젝트의 bin 폴더에 RIA Services 어셈블리를 포함하는 것입니다. Visual Studio에서 이렇게 하려면 솔루션 탐색기에서 포함해야 하는 웹 프로젝트 어셈블리 참조를 각각 선택하고 속성 창에서 로컬 복사 속성을 True로 설정해야 합니다. 항상 포함해야 하는 두 어셈블리는 다음과 같습니다.
System.ServiceModel.DomainServices.Server.dll
System.ServiceModel.DomainServices.Hosting.dll
이러한 속성 값을 True로 설정하면 다음에 솔루션을 빌드할 때 bin 폴더에 어셈블리가 복사됩니다. 어셈블리를 bin 폴더에 복사하면 사이트를 게시할 때 웹 서버에 복사됩니다.
Entity Framework를 사용하여 데이터베이스에 액세스하는 경우 System.ServiceModel.DomainServices.EntityFramework.dll 어셈블리에 대한 참조도 추가해야 합니다.
LINQ to SQL을 사용하여 데이터에 액세스하는 경우 Microsoft.ServiceModel.DomainServices.LinqToSql.dll 어셈블리에 대한 참조도 추가해야 합니다.
GAC 배포
RIA Services 어셈블리를 사용하는 모든 프로젝트의 Bin 폴더에 어셈블리를 복사하는 대신 GAC에 어셈블리를 설치할 수 있습니다. GAC에 있는 모든 어셈블리는 서버의 모든 응용 프로그램에서 사용할 수 있습니다. 이 방식을 사용하면 모든 Bin 폴더에서 어셈블리를 업데이트하는 대신 GAC에서만 업데이트하면 되므로 더 쉽게 유지 관리할 수 있습니다.
웹 서버에서 GAC에 RIA Services 어셈블리를 설치하려면 다음 명령을 실행하십시오.
msiexec /i RiaServices.msi SERVER=TRUE
웹 서버 구성
웹 서버에 RIA Services 응용 프로그램을 배포하려면 해당 Web.config 파일에서 요소 및 특성이 올바르게 구성되어 있어야 합니다. Web.config 파일은 ASP.NET 응용 프로그램의 구성을 관리하며, 새 Silverlight 응용 프로그램 마법사를 사용하여 Silverlight 응용 프로그램을 호스팅하도록 선택할 때 자동으로 만들어집니다. 이 Web.config 파일은 처음에 <compilation>
요소에서 대상 프레임워크를 .NET Framework 4.0으로만 지정합니다. 배포에 필요한 실제 값은 기본적으로 새 도메인 서비스 클래스 추가 마법사를 사용하여 서비스 도메인을 RIA Services 응용 프로그램의 웹 프로젝트에 추가할 때 Web.config 파일에 설정됩니다.
Web.config 파일에는 배포에 중요한 몇 가지 섹션이 있습니다. 이러한 섹션은 ASP.NET 호스팅 모드, IIS 및 인증 모드를 구성하는 섹션입니다. 이 단원에서는 이러한 섹션에 있는 RIA Services 응용 프로그램을 배포하는 데 필요한 구성 요소의 값에 대해 설명합니다. 기본적으로 이러한 값은 마법사를 통해 설정되지만 게시하기 전 여러 절차에 따라 값을 변경할 수 있습니다. 따라서 올바른 값을 알고 예상한 대로 값이 설정되었는지 확인하는 것이 좋습니다. 이 단원에서는 또한 IIS(인터넷 정보 서비스) 마법사를 사용하여 Web.config 파일에 지정된 값에 맞게 IIS가 구성되어 있는지 확인하는 몇 가지 절차에 대해 설명합니다.
RIA Services 도메인 서비스는 WCF(Windows Communication Foundation) 서비스이며 ASP.NET으로 호스팅될 때 ASP.NET 호환 모드로 호스팅되어야 합니다. 이 요구 사항은 코드로 설정할 수 없으며 Web.config 파일에서 지정해야 합니다. ASP.NET 호환 모드는 <system.serviceModel>
섹션의 <ServiceHostingEnvironment>
요소에서 aspNetCompatibilityEnabled
속성을 true로 설정하여 활성화됩니다.
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
</system.serviceModel>
기본적으로는 true
값이 설정됩니다. 호환 모드를 사용하면 도메인 WCF 서비스에서 ASP.NET 웹 응용 프로그램 플랫폼의 모든 기능을 사용할 수 있습니다. multipleSiteBindingsEnabled
특성을 true
로 설정하면 HTTP 프로토콜을 사용하는 서비스에서 사이트당 여러 개의 IIS 바인딩을 사용할 수 있습니다. 이러한 기능을 설정하는 데 따른 결과에 대한 자세한 내용은 WCF 서비스 및 ASP.NET을 참조하십시오.
주의: |
---|
WCF 서비스는 IIS보다 많은 호스팅 옵션을 제공합니다. 이 서비스는 관리되는 응용 프로그램에서 자체 호스팅하거나, 관리되는 Windows 서비스에서 호스팅하거나 WAS(Windows Process Activation Service)에서 호스팅할 수 있습니다. 따라서 WCF 서비스에서 ASP.NET 호환 모드를 선택해야 합니다. 하지만 RIA Services 도메인 서비스는 IIS로만 호스팅할 수 있으므로 HTTP 전송만 사용하도록 제한됩니다. |
새 도메인 서비스 클래스 추가 마법사는 system.web
섹션 내에서 IIS 6에 필요한 <httpModules>
요소의 <add>
요소를 추가합니다. 이 섹션의 <compilation>
요소에서 .NET Framework 4.0이 대상으로 지정되었고 다음 값을 사용하여 도메인 서비스 모듈이 추가되었는지 확인하십시오.
<system.web>
<httpModules>
<add name="DomainServiceModule" type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</httpModules>
<compilation targetFramework="4.0" />
</system.web>
새 도메인 서비스 클래스 추가 마법사는 <system.webserver>
섹션에서 IIS 7에 필요한 <modules>
요소를 추가합니다. 다음과 같은 값이 포함되었는지 확인합니다.
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<add name="DomainServiceModule" preCondition="managedHandler"
type="System.ServiceModel.DomainServices.Hosting.DomainServiceHttpModule, System.ServiceModel.DomainServices.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</modules>
</system.webServer>
팁: |
---|
응용 프로그램을 배포하는 데 사용되는 IIS 버전에 필요한 구성 요소만 보존하면 됩니다. 예를 들어 IIS7을 사용하여 배포할 경우 IIS6을 구성하는 요소를 제거해야 합니다. 하지만 두 호스팅 요소 집합을 모두 보존해도 문제는 없습니다. |
RIA Services 솔루션을 사용할 때는 인증 스키마를 하나만 설정할 수 있습니다. Web.config 파일에서 <authentication>
요소는 ASP.NET 응용 프로그램에 대한 ASP.NET 인증 체계를 구성합니다. 인증 체계는 ASP.NET 응용 프로그램을 보려는 사용자를 식별하는 방법을 결정합니다. 모드 특성은 인증 체계를 지정합니다. Web.config 파일의 <authentication>
요소와 계층에 있는 다른 구성 파일에서 스키마(Windows, Forms, Passport, None)가 두 개 이상 설정되지 않았는지 확인합니다. 이 섹션은 RIA Services 응용 프로그램에 대한 도메인 서비스를 만들 때 기본적으로 또는 명시적으로 만들어지지 않습니다. 요소가 명시적으로 지정되지 않을 때 사용되는 기본값은 <authentication mode = “Windows”>
입니다. 웹 응용 프로그램이 게시된 후에는 IIS에 Windows 인증만 설정되어 있는지(해당 옵션을 사용하는 경우) 확인해야 합니다. 이 절차에 대해서는 아래에서 설명합니다.
Web.config 설정에 대한 자세한 내용은 ASP.NET 구성을 참조하십시오.
RIA 응용 프로그램 배포
IIS에 웹 응용 프로그램 게시
Visual Studio 2010에서 RIA Services 응용 프로그램을 엽니다. 게시하려면 관리자 권한이 필요하므로 응용 프로그램을 열 때 시작 메뉴에서 Visual Studio 2010을 마우스 오른쪽 단추로 클릭하고 관리자 권한으로 실행을 선택해야 합니다.
솔루션 탐색기에서 웹 프로젝트를 선택하고, 마우스 오른쪽 단추로 클릭한 다음 게시를 선택합니다.
웹 배포 방법으로 게시를 선택하고, 서비스 URL로 localhost(로컬로 게시하는 경우, 원격 게시의 경우 원격 서버 이름 선택)를 지정하고, 사이트/응용 프로그램 상자에서 사이트로 기본 웹 사이트(서버가 로컬인 경우)를 지정하고 응용 프로그램 이름을 붙입니다. 예를 들어 RIAApp1이라는 RIA Services 응용 프로그램을 로컬로 게시하려면 기본 웹 사이트/RIAApp1을 입력합니다.
대상의 IIS 응용 프로그램으로 표시 및 대상의 추가 파일 유지(삭제 안 함) 상자를 선택합니다.
게시 단추를 클릭합니다.
IIS(인터넷 정보 서비스) 관리자를 열고, 연결 창에 포함된 기본 웹 사이트 목록에서 바로 전에 게시한 응용 프로그램을 찾고 창 아래쪽에 있는 콘텐츠 보기 탭을 선택합니다.
사이트의 테스트 페이지를 열려면 ASP.NET 서버 페이지를 선택하고, 마우스 오른쪽 단추로 클릭하여 찾아보기를 선택합니다.
팁: |
---|
RIA Services 응용 프로그램에 필요한 어셈블리를 bin에 배포한 경우 IIS 관리자의 bin 파일 폴더에서 찾을 수 있습니다. 이 폴더에는 웹 응용 프로그램의 어셈블리도 포함됩니다. |
주의: |
---|
응용 프로그램이 테스트 페이지에 표시되지 않으면 ASP.NET 또는 Silverlight에 문제가 있는 것입니다. Silverlight 배포에 대한 자세한 내용은 배포 및 지역화를 참조하십시오. |
IIS 관리자에서 인증 모드 지정
IIS 관리자의 연결 창에서 웹 응용 프로그램을 선택합니다.
기능 보기의 IIS 그룹에서 인증을 두 번 클릭합니다.
Windows 인증(또는 사용자가 선택한 다른 인증 모드)이 설정되었는지 확인합니다. IIS는 기본적으로 익명 인증만 지원하므로 이 절차는 일반적으로 인증 모드를 변경하는 데 필요합니다. ASP.NET에서는 인증 모드를 여러 개 설정할 수 있으며, IIS 관리자에서도 그러한 설정이 허용됩니다. RIA Services 에서는 익명 인증과 함께(사용자가 로그인 페이지에 액세스할 수 있도록) 폼 인증을 사용할 수 있지만 그 자체로는 Windows 인증만 허용됩니다. 이름을 마우스 오른쪽 단추로 클릭하고 인증을 한 가지 모드로 제한하기 위해 필요에 따라 사용 또는 사용 안 함을 선택합니다.
주의: |
---|
익명 인증과 함께 Windows 인증 또는 다른 모드가 표시되지 않으면 누락된 IIS 구성 요소를 설치해야 합니다. 이러한 절차에 대한 자세한 내용은 IIS 7 설치 및 배포를 참조하십시오. |
테스트 페이지를 올바르게 표시하는 데 문제가 있으면 RIA Services 솔루션 배포 문제 해결 항목을 참조하십시오.