Обновление проектов SignalR 1.x до версии 2

Патрик Флетчер

Предупреждение

Эта документация не подходит для последней версии SignalR. Взгляните на ASP.NET Core SignalR.

В этом разделе описывается обновление существующего проекта SignalR 1.x до SignalR 2.x и устранение неполадок, которые могут возникнуть во время процесса обновления.

Версии программного обеспечения, используемые в руководстве

Использование Visual Studio 2012 с этим руководством

Чтобы использовать Visual Studio 2012 с этим руководством, сделайте следующее:

  • Обновите диспетчер пакетов до последней версии.
  • Установите установщик веб-платформы.
  • В установщике веб-платформы найдите и установите ASP.NET и веб-инструменты 2013.1 для Visual Studio 2012. Будут установлены шаблоны Visual Studio для классов SignalR, таких как Hub.
  • Некоторые шаблоны (например , класс запуска 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 1.x руководства по началу работы, чтобы использовать SignalR 2.

  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.

    Снимок экрана: диалоговое окно

  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, который выполняет Configuration метод при запуске Owin. Это в свою очередь вызывает MapSignalR метод, который создает маршруты для всех центров SignalR в приложении.

  8. Запустите проект и скопируйте URL-адрес главной страницы в другой браузер или панель браузера, как делали раньше. Каждая страница будет запрашивать имя пользователя, а сообщения, отправленные с каждой страницы, должны отображаться в обеих панелях браузера.

Устранение ошибок при обновлении

В этом разделе описываются проблемы, которые могут возникнуть во время обновления. Более полный список ошибок и проблем, которые могут возникнуть с приложением SignalR, см. в разделе "Устранение неполадок SignalR".

"Вызов неоднозначный между следующими методами или свойствами"

Эта ошибка возникает, если ссылка Microsoft.AspNet.SignalR.Owin на не удалена. Этот пакет не рекомендуется; Ссылка должна быть удалена, и необходимо удалить версию пакета SelfHost версии 1.x.

Методы концентратора завершаются без уведомления

Убедитесь, что ссылки на скрипты в клиенте актуальны, и что OwinStartup атрибут для класса Startup имеет правильные имена классов и сборок для проекта. Кроме того, попробуйте открыть адрес хабов (/signalr/hubs) в браузере; любая ошибка, которая отобразится, предоставит больше информации о проблеме.