SignalR 1.x 프로젝트를 버전 2로 업그레이드

작성자 : Patrick Fletcher

경고

이 설명서는 최신 버전의 SignalR용이 아닙니다. ASP.NET Core SignalR을 살펴보세요.

이 항목에서는 기존 SignalR 1.x 프로젝트를 SignalR 2.x로 업그레이드하는 방법과 업그레이드 프로세스 중에 발생할 수 있는 문제를 해결하는 방법을 설명합니다.

자습서에서 사용되는 소프트웨어 버전

이 자습서에서 Visual Studio 2012 사용

이 자습서에서 Visual Studio 2012를 사용하려면 다음을 수행합니다.

  • 패키지 관리자를 최신 버전으로 업데이트합니다.
  • 웹 플랫폼 설치 관리자를 설치합니다.
  • 웹 플랫폼 설치 관리자에서 Visual Studio 2012용 ASP.NET 및 Web Tools 2013.1을 검색하여 설치합니다. 그러면 Hub와 같은 SignalR 클래스용 Visual Studio 템플릿이 설치됩니다.
  • OWIN 시작 클래스와 같은 일부 템플릿은 사용할 수 없습니다. 클래스 파일을 대신 사용합니다.

질문 및 의견

이 자습서를 어떻게 좋아했는지, 그리고 페이지 하단의 주석에서 개선할 수 있는 사항에 대한 피드백을 남겨 주세요. 자습서와 직접 관련이 없는 질문이 있는 경우 ASP.NET SignalR 포럼 또는 StackOverflow.com 게시할 수 있습니다.

SignalR 2는 OWIN을 사용하여 서버 플랫폼에서 일관된 개발 환경을 제공합니다. 이 문서에서는 SignalR 1.x 애플리케이션을 버전 2로 업데이트하는 데 필요한 몇 가지 단계를 설명합니다.

애플리케이션을 SignalR 2로 업그레이드하는 것이 권장되지만 SignalR 1.x는 계속 지원됩니다.

이 자습서에서는 웹 호스팅 애플리케이션을 SignalR 2로 업그레이드하는 방법을 설명합니다. 자체 호스팅 애플리케이션(콘솔 애플리케이션, Windows 서비스 또는 기타 프로세스에서 서버를 호스트하는 애플리케이션)은 이제 SignalR 2에서 지원됩니다. SignalR 2를 사용하여 자체 호스팅 애플리케이션을 만드는 방법에 대한 자세한 내용은 자습서: SignalR 자체 호스트를 참조하세요.

콘텐츠

다음 섹션에서는 SignalR 프로젝트 업그레이드와 관련된 작업 및 발생할 수 있는 문제를 해결하는 방법을 설명합니다.

예: 시작 자습서 애플리케이션을 SignalR 2로 업그레이드

이 섹션에서는 SignalR 2를 사용하도록 시작 자습서의 SignalR 1.x 버전에서 만든 애플리케이션을 업데이트합니다.

  1. 시작 자습서를 완료한 후 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 대상 프레임워크.NET Framework 4.5로 설정되어 있는지 확인합니다.

  2. 패키지 관리자 콘솔을 엽니다. 다음 명령을 사용하여 프로젝트에서 SignalR 1.x를 제거합니다.

    Uninstall-Package Microsoft.AspNet.SignalR -RemoveDependencies
    
  3. 다음 명령을 사용하여 SignalR 2를 설치합니다.

    Install-Package Microsoft.AspNet.SignalR
    
  4. HTML 페이지에서 SignalR에 대한 스크립트 참조를 이제 프로젝트에 포함된 스크립트 버전과 일치하도록 업데이트합니다.

    <!--Reference the SignalR library. -->
    <script src="Scripts/jquery.signalR-2.1.0.min.js"></script>
    
  5. 전역 애플리케이션 클래스에서 MapHubs에 대한 호출을 제거합니다.

    protected void Application_Start(object sender, EventArgs e)
    {
        RouteTable.Routes.MapHubs();
    }
    
  6. 솔루션을 마우스 오른쪽 단추로 클릭하고 추가, 새 항목...을 선택합니다. 대화 상자에서 Owin 시작 클래스를 선택합니다. 새 클래스 이름을 Startup.cs로 지정합니다.

    새 항목 추가 대화 상자를 보여 주는 스크린샷 OWIN 시작 클래스가 선택되고 시작 점 C S가 이름 필드에 있습니다.

  7. Startup.cs의 내용을 다음 코드로 바꿉니다.

    using Microsoft.Owin;
    using Owin;
    
    [assembly: OwinStartup(typeof(SignalRChat.Startup))]
    namespace SignalRChat
    {
       
        public class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                app.MapSignalR();
            }
        }
    }
    

    어셈블리 특성은 Owin이 시작될 때 메서드를 실행하는 Owin의 시작 프로세스에 Configuration 클래스를 추가합니다. 그러면 메서드를 호출하여 애플리케이션의 MapSignalR 모든 SignalR Hub에 대한 경로를 만듭니다.

  8. 프로젝트를 실행하고 기본 페이지의 URL을 이전과 같이 다른 브라우저 또는 브라우저 창에 복사합니다. 각 페이지에서 사용자 이름을 요청하고 각 페이지에서 보낸 메시지는 두 브라우저 창에 모두 표시되어야 합니다.

업그레이드하는 동안 발생한 오류 문제 해결

이 섹션에서는 업그레이드 중에 발생할 수 있는 문제에 대해 설명합니다. SignalR 애플리케이션에서 발생할 수 있는 오류 및 문제의 보다 포괄적인 목록은 SignalR 문제 해결을 참조하세요.

'다음 메서드 또는 속성 간에 호출이 모호합니다.'

이 오류는 에 대한 참조 Microsoft.AspNet.SignalR.Owin 가 제거되지 않은 경우에 발생합니다. 이 패키지는 더 이상 사용되지 않습니다. 참조를 제거해야 하며 SelfHost 패키지의 1.x 버전을 제거해야 합니다.

허브 메서드가 자동으로 실패

클라이언트의 스크립트 참조가 최신 상태이고 Startup 클래스의 OwinStartup 특성에 프로젝트에 대한 올바른 클래스 및 어셈블리 이름이 있는지 확인합니다. 또한 브라우저에서 허브 주소(/signalr/hubs)를 열어 보세요. 표시되는 오류는 무엇이 잘못되는지에 대한 자세한 정보를 제공합니다.