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

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

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

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

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

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

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

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

  • Обновите диспетчер пакетов до последней версии.
  • Установите установщик веб-платформы.
  • В установщике веб-платформы найдите и установите ASP.NET and Web Tools 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-адрес страницы main в другой браузер или панель браузера, как и раньше. На каждой странице будет запрашиваться имя пользователя, а сообщения, отправленные с каждой страницы, должны отображаться в обеих панелях браузера.

Устранение ошибок, возникших во время обновления

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

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

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

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

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