방법: ASP.NET 웹 응용 프로그램을 .NET Framework 4로 업그레이드

Visual Studio를 사용하여 .NET Framework 2.0용으로 개발된 웹 프로젝트를 여는 경우 .NET Framework 3.0이나 .NET Framework 3.5 또는 Visual Studio에서 .NET Framework 버전 4를 사용하여 실행하기 위해 필요한 모든 변경 내용을 Web.config 파일에 자동으로 적용할 수 있습니다. 프로젝트가 로컬 IIS 프로젝트이고 IIS 7.0을 사용 중인 경우 Visual Studio에서도 .NET Framework 버전 4와 연결된 응용 프로그램 풀에 응용 프로그램을 재할당할 수 있습니다.

Visual Studio를 사용하여 업그레이드에 필요한 작업을 수행하는 것이 좋습니다. Visual Studio를 사용하여 업그레이드를 자동으로 수행하지 않는 경우 Web.config 파일을 수동으로 편집하고 IIS에서 응용 프로그램을 .NET Framework 버전 4와 수동으로 연결해야 합니다.

일반적으로 이 항목에서 다루는 절차를 사용하면 웹 응용 프로그램을 충분히 업그레이드할 수 있습니다. .NET Framework의 이후 버전은 이전 버전과 호환되도록 디자인되어 있기 때문입니다. 그러나 추가 정보 설명서를 검토하여 주요 변경 내용이 있는지 확인해야 합니다. 이전 버전의 .NET Framework용으로 개발된 구성 요소의 동작이 이후 버전의 .NET Framework에서 변경되었을 수 있기 때문입니다.

참고참고

IIS 응용 프로그램 내에 이전 버전의 .NET Framework를 대상으로 하는 중첩된 응용 프로그램이 있는 경우 IIS 응용 프로그램을 업그레이드하지 마십시오. .NET Framework 3.5 또는 이전 버전을 대상으로 하는 IIS 응용 프로그램이 .NET Framework 4를 대상으로 하는 IIS 응용 프로그램 내에 중첩된 경우, 중첩된 응용 프로그램을 컴파일할 때 컴파일러에서 오류를 보고할 수 있습니다. 이는 Web.config 파일이 구성 파일 계층 구조에서 보다 상위에 있는 파일의 설정을 상속하기 때문입니다. .NET Framework 4는 이전 버전과 호환되므로 .NET Framework 4를 대상으로 하는 중첩된 웹 응용 프로그램이 이전 버전용 Web.config 파일의 설정을 상속할 수 있습니다. 하지만 이전 버전의 .NET Framework는 이후 버전과 호환되지 않으므로 .NET Framework 4 Web.config 파일의 설정을 상속할 수 없습니다.

Visual Studio를 사용하여 응용 프로그램을 업그레이드하려면

  1. Visual Studio에서 웹 사이트 또는 프로젝트를 엽니다.

  2. Visual Studio 변환 마법사 시작 대화 상자가 나타나면 다음을 클릭합니다.

    이 마법사는 웹 응용 프로그램 프로젝트나 솔루션을 열 때 나타나며, 솔루션에 포함되지 않은 웹 사이트 프로젝트를 열면 나타나지 않습니다.

    Visual Studio 변환 마법사 대화 상자
  3. 프로젝트를 변환하는 경우 Visual Studio 변환 마법사백업을 만들지 여부 선택 대화 상자에서 백업 옵션을 선택하고 다음을 클릭합니다.

    Visual Studio 변환 마법사 백업 대화 상자

    Visual Studio에서 프로젝트 파일을 Visual Studio 2010 형식으로 업그레이드합니다. 개별 프로젝트 대신 솔루션을 업그레이드하는 경우 Visual Studio는 솔루션 파일을 Visual Studio 2010 형식으로 업그레이드합니다.

  4. 프로젝트를 변환하는 경우 Visual Studio 변환 마법사변환 준비 대화 상자에서 다음을 클릭합니다.

    Visual Studio 변환 마법사 준비 대화 상자
  5. .NET Framework 3.5가 설치되어 있지 않은 컴퓨터에서 웹 프로젝트를 여는 경우 프로젝트 대상 프레임워크가 설치되지 않음 대화 상자에서 프로젝트 대상을 .NET Framework 4로 다시 지정을 선택하고 확인을 클릭합니다.

    프로젝트 대상 프레임워크가 설치되지 않음 대화 상자
  6. .NET Framework 3.5가 설치되어 있는 컴퓨터에서 웹 프로젝트를 여는 경우 솔루션에 포함된 모든 웹 사이트나 프로젝트를 업그레이드하지는 않으려면 이전 버전의 .NET Framework를 사용하는 웹 사이트가 있습니다. 대화 상자에서 확인란의 선택을 취소합니다.

    .NET Framework 버전 선택 대화 상자
  7. 대화 상자에서 를 클릭합니다.

    Visual Studio에서 Web.config 파일을 업데이트합니다. Web.config 파일에 대한 변경 내용은 이 항목 뒷부분의 절차에 나열되어 있습니다. 이 절차에서는 Web.config 파일을 수동으로 업데이트하는 방법에 대해 설명합니다. Visual Studio에서는 주석을 업데이트하지 않습니다. 따라서 변환 후에도 Web.config 파일에 이전 버전의 .NET Framework를 참조하는 주석이 포함되어 있을 수 있습니다.

    Visual Studio에서는 pages 요소의 controlRenderingCompatibilityVersion 특성을 자동으로 3.5로 설정합니다. ASP.NET 4의 향상된 XHTML 및 내게 필요한 옵션 기능을 활용하기 위해 이 설정을 제거할 수 있습니다. 자세한 내용은 이 항목 뒷부분에서 Web.config 파일을 수동으로 업데이트하는 방법에 대해 설명하는 절차를 참조하십시오.

  8. 프로젝트를 변환하는 경우 Visual Studio 변환 마법사변환 완료 대화 상자에서 닫기를 클릭합니다.

    Visual Studio 변환 마법사 닫기 대화 상자
  9. 프로젝트가 로컬 IIS 프로젝트가 아닌 경우 해당 프로젝트가 IIS에 배포될 때 IIS 응용 프로그램을 Visual Studio에 연결합니다. 자세한 내용은 이 항목 뒷부분에서 현재 사용 중인 IIS 버전에 해당하는 절차를 참조하십시오.

    IIS 응용 프로그램이 .NET Framework 2.0과 연결되어 있는 경우 사이트를 사용할 수 없습니다. ASP.NET에서 targetFramework 특성이 인식되지 않음을 나타내는 오류가 생성됩니다.

  10. 프로젝트가 로컬 IIS 프로젝트이고 IIS 버전이 6.0인 경우 이 항목 뒷부분에 있는 IIS 6.0용 절차에 따라 IIS 응용 프로그램을 Visual Studio에 연결합니다. 

    프로젝트가 로컬 IIS 프로젝트인 경우 Visual Studio에서 이 연결 작업을 자동으로 수행하여 응용 프로그램을 .NET Framework 버전 4의 첫 번째 사용 가능 응용 프로그램 풀에 할당합니다. 응용 프로그램 풀이 없는 경우 Visual Studio에서 하나를 만듭니다.

    참고참고

    기본적으로 Visual Studio에서 응용 프로그램 풀을 할당하고 만들기 위해 사용하는 IIS 6.0 Metabase API는 Windows Vista 또는 Windows 7에서 사용할 수 없습니다. 이를 사용하려면 Windows 제어판에서 프로그램 및 기능Windows 기능 사용/사용 안 함을 선택하여 IIS 6 메타베이스 호환성 계층을 사용하도록 설정해야 합니다. 다음 그림에서는 Windows 기능 대화 상자를 보여 줍니다.

    Windows 기능 사용/사용 안 함 대화 상자
  11. 프로젝트에 HttpRequest.Browser 속성에서 HttpBrowserCapabilities 개체에 액세스하는 코드가 포함되어 있는 경우 코드를 테스트하여 예상대로 작동하는지 확인합니다.

    ASP.NET 4에서는 HttpBrowserCapabilities 개체에 정보를 제공하는 브라우저 정의 파일이 변경되었으며 이러한 변경 내용은 이전 버전의 ASP.NET과 호환되지 않습니다. ASP.NET 4 변경 내용을 수용하도록 코드를 변경하는 데 문제가 있어 이를 변경하지 않으려는 경우 ASP.NET 3.5가 설치된 컴퓨터의 ASP.NET 3.5 브라우저 폴더에서 ASP.NET 3.5 브라우저 정의 파일을 복사하여 ASP.NET 4 브라우저 폴더에 넣을 수 있습니다. ASP.NET 버전의 브라우저 폴더는 다음 위치에서 찾을 수 있습니다.

    %SystemRoot%\Microsoft.NET\Framework\versionNumber\Config\Browsers

    브라우저 정의 파일을 복사한 후 aspnet_regbrowsers.exe 도구를 실행해야 합니다. 자세한 내용은 ASP.NET 웹 서버 컨트롤 및 브라우저 기능을 참조하십시오.

응용 프로그램의 Web.config 파일을 .NET Framework 3.5에서 .NET Framework 4로 수동으로 업그레이드하려면

  1. 응용 프로그램이 현재 ASP.NET 3.5를 대상으로 하는지 확인합니다.

    참고참고

    이 항목에서는 Web.config 파일을 .NET Framework 3.5에서 .NET Framework 4로 변환하는 방법에 대해 설명합니다. .NET Framework 3.5보다 이전 버전의 웹 응용 프로그램을 업그레이드하려면 먼저 응용 프로그램을 .NET Framework 3.5로 변환해야 합니다. 자세한 내용은 ASP.NET 3.5로 변환을 참조하십시오.

  2. 응용 프로그램 루트에서 Web.config 파일을 엽니다.

  3. configSections 섹션에서 "system.web.extensions"라는 sectionGroup 요소를 제거합니다.

  4. system.web 섹션의 compilation 컬렉션에서 .NET Framework의 어셈블리를 참조하는 모든 add 요소를 제거합니다.

    Framework 어셈블리는 일반적으로 "System."으로 시작합니다. 일반적으로 이러한 어셈블리는 assembly 특성에 Version=3.5.0.0이 지정되어 있습니다. 그러나 버전 번호가 3.5.0.0인 일부 어셈블리 항목이 추가 기능 릴리스의 일부로 설치된 어셈블리나 사용자 지정 어셈블리를 참조할 수도 있습니다. 이러한 항목은 삭제하지 마십시오. Web.config 파일에 이러한 참조가 포함되어 있는 경우 개별적으로 조사하여 이후 버전을 사용할 수 있는지 및 버전 참조를 변경해야 하는지를 결정해야 합니다.

  5. 다음 예제와 같이 targetFramework 특성을 system.web 섹션의 compilation 요소에 추가합니다.

    <compilation targetFramework="4.0">
    

    다음 예제와 같이 pages 섹션의 여는 태그에 controlRenderingCompatibility 특성을 추가합니다.

    <pages controlRenderingCompatibilityVersion="3.5"/>
    

    많은 ASP.NET 4 컨트롤에서 XHTML 및 내게 필요한 옵션 표준과 호환되는 HTML을 렌더링합니다. 그러나 변환하는 웹 사이트에 웹 페이지에서 HTML을 렌더링하는 방식을 변경하는 경우 제대로 작동하지 않는 CSS 규칙이나 클라이언트 스크립트가 포함되어 있을 수 있습니다. ASP.NET 4의 향상된 컨트롤 렌더링 기능을 활용하려면 이 특성을 생략할 수 있습니다. 자세한 내용은 ControlRenderingCompatibilityVersion을 참조하십시오.

  6. system.codedom 섹션의 compilers 컬렉션에서 c#vbcompiler 요소를 제거합니다.

  7. system.webserver 섹션 시작 태그와 끝 태그 사이의 모든 항목을 삭제하고 태그 자체는 그대로 둡니다.

  8. runtime 섹션 시작 태그와 끝 태그 사이의 모든 항목을 삭제하고 태그 자체는 그대로 둡니다.

  9. Web.config 파일을 사용자 지정하거나 사용자 지정에서 사용자 지정 어셈블리 또는 클래스를 참조하는 경우 해당 어셈블리 또는 클래스가 .NET Framework 버전 4와 호환되는지 확인합니다.

    다음 예제에서는 .NET Framework 버전 3.5에서 .NET Framework 버전 4로 변환된 단순한 웹 응용 프로그램의 Web.config 파일을 보여 줍니다.

    <?xml version="1.0"?>
    <!-- 
        Note: As an alternative to hand editing this file you can use the 
        web admin tool to configure settings for your application. Use
        the Website->Asp.Net Configuration option in Visual Studio.
        A full list of settings and comments can be found in 
        machine.config.comments usually located in 
        \Windows\Microsoft.Net\Framework\v2.x\Config 
    -->
    <configuration>
      <appSettings/>
      <connectionStrings>
        <add name="NorthwindConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\NORTHWND.MDF;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
      </connectionStrings>
      <system.web>
    <!-- 
        Set compilation debug="true" to insert debugging 
        symbols into the compiled page. Because this 
        affects performance, set this value to true only 
        during development.
    -->
      <compilation debug="true" targetFramework="4.0">
        <assemblies>
        </assemblies>
      </compilation>
    <!--
        The <authentication> section enables configuration 
        of the security authentication mode used by 
        ASP.NET to identify an incoming user. 
    -->
      <authentication mode="Windows"/>
    <!--
        The <customErrors> section enables configuration 
        of what to do if/when an unhandled error occurs 
        during the execution of a request. Specifically, 
        it enables developers to configure html error pages 
        to be displayed in place of a error stack trace.
            <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
                <error statusCode="403" redirect="NoAccess.htm" />
                <error statusCode="404" redirect="FileNotFound.htm" />
            </customErrors>
    -->
      <pages controlRenderingCompatibilityVersion="3.5"/></system.web>
      <system.codedom>
      </system.codedom>
    <!-- 
        The system.webServer section is required for running ASP.NET AJAX under Internet
        Information Services 7.0.  It is not necessary for previous version of IIS.
    -->
      <system.webServer>
      </system.webServer>
    </configuration>
    

IIS 7.0에서 IIS 응용 프로그램을 .NET Framework 4와 연결하려면

  1. Windows에서 Inetmgr을 시작합니다.

  2. 연결 창에서 서버 노드를 확장한 다음 응용 프로그램 풀을 클릭합니다.

  3. 응용 프로그램 풀 페이지에서 변경할 응용 프로그램이 포함된 응용 프로그램 풀을 선택합니다.

  4. 작업 창에서 응용 프로그램 보기를 클릭합니다.

  5. 응용 프로그램 풀을 변경할 응용 프로그램을 선택하고 작업 창에서 응용 프로그램 풀 변경을 클릭합니다.

  6. 응용 프로그램 풀 선택 대화 상자의 응용 프로그램 풀 목록에서 .NET Framework 버전 4와 연결되어 있는 응용 프로그램을 선택한 다음 확인을 클릭합니다.

IIS 6.0에서 IIS 응용 프로그램을 .NET Framework 4와 연결하려면

표시: