Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предупреждение
Эта документация не подходит для последней версии SignalR. Взгляните на ASP.NET Core SignalR.
В этом руководстве вы развернете приложение SignalR в веб-роли Windows Azure, используя шину сообщений Service Bus для распределения сообщений по каждому экземпляру роли.
Prerequisites:
- Учетная запись Windows Azure.
- Пакет SDK для Windows Azure.
- Visual Studio 2012.
Серверная планка служебной шины также совместима с служебной шиной для Windows Server версии 1.1. Однако она несовместима с версией 1.0 служебной шины для Windows Server.
Цены
Шина данных служебной шины использует топики для отправки сообщений. Последние сведения о ценах см. в Service Bus. На момент написания этой статьи вы можете отправлять 1000 000 сообщений в месяц менее чем на 1 долл. США. Коммутационная панель отправляет сообщение служебной шины для каждого вызова метода узла SignalR. Существуют также некоторые контрольные сообщения для подключений, отключений, присоединения или выхода из групп и т. д. В большинстве приложений большинство трафика сообщений будет вызовами методов концентратора.
Обзор
Прежде чем ознакомиться с подробным руководством, ознакомьтесь с кратким обзором того, что вы будете делать.
Используйте портал Windows Azure для создания нового пространства имен служебной шины.
Добавьте эти пакеты NuGet в приложение:
Создайте приложение SignalR.
Добавьте следующий код в Global.asax, чтобы сконфигурировать бекплейн:
protected void Application_Start() { string connectionString = "Service Bus connection string"; GlobalHost.DependencyResolver.UseServiceBus(connectionString, "YourAppName"); RouteTable.Routes.MapHubs(); // ... }
Для каждого приложения выберите другое значение "YourAppName". Не используйте одно и то же значение в нескольких приложениях.
Создание служб Azure
Создайте облачную службу, как описано в руководстве по созданию и развертыванию облачной службы. Выполните действия, описанные в разделе "Практическое руководство. Создание облачной службы с помощью быстрого создания". В этом руководстве не требуется отправлять сертификат.
Создайте новое пространство имен Service Bus, как описано в разделе "Использование разделов и подписок Service Bus". Выполните действия, описанные в разделе "Создание пространства имен службы".
Замечание
Выберите тот же регион для облачной службы и пространства имен служебной шины.
Создание проекта Visual Studio
Запустите Visual Studio. В меню "Файл" нажмите кнопку "Создать проект".
В диалоговом окне Создать проект разверните Visual C#. В разделе "Установленные шаблоны" выберите "Облако " и выберите "Облачная служба Windows Azure". Сохраните .NET Framework 4.5 по умолчанию. Назовите приложение ChatService и нажмите кнопку "ОК".
В диалоговом окне "Новая облачная служба Windows Azure" выберите веб-роль "ASP.NET MVC 4". Нажмите кнопку со стрелкой вправо (>), чтобы добавить роль в ваше решение.
Наведите указатель мыши на новую роль, чтобы значок карандаша был видимым. Щелкните этот значок, чтобы переименовать роль. Назовите роль SignalRChat и нажмите кнопку "ОК".
В мастере создания проекта ASP.NET MVC 4 выберите интернет-приложение. Нажмите кнопку ОК. Мастер проектов создает два проекта:
- ChatService: этот проект является приложением Windows Azure. Он определяет роли Azure и другие параметры конфигурации.
- SignalRChat: этот проект является вашим проектом ASP.NET MVC 4.
Создание приложения чата SignalR
Чтобы создать приложение чата, выполните действия, описанные в руководстве по началу работы с SignalR и MVC 4.
Используйте NuGet для установки необходимых библиотек. В меню "Сервис" выберите диспетчер пакетов NuGet, а затем консоль диспетчера пакетов. В окне консоли диспетчера пакетов введите следующие команды:
Install-Package -ProjectName SignalRChat Microsoft.AspNet.SignalR
Install-Package -ProjectName SignalRChat Microsoft.AspNet.SignalR.ServiceBus
-ProjectName Используйте параметр для установки пакетов в проект ASP.NET MVC, а не проект Windows Azure.
Настройте заднюю панель
В файле Global.asax приложения добавьте следующий код:
protected void Application_Start()
{
string connectionString = "";
GlobalHost.DependencyResolver.UseServiceBus(connectionString, "Chat");
RouteTable.Routes.MapHubs();
}
Теперь необходимо получить строку подключения служебной шины. На портале Azure выберите созданное пространство имен служебной шины и щелкните значок ключа доступа.
Скопируйте строку подключения в буфер обмена, а затем вставьте ее в переменную connectionString .
string connectionString = "Endpoint=sb://xxxx.servicebus.windows.net/;
SharedSecretIssuer=owner;SharedSecretValue=XXXXXXXX";
Развертывание в Azure
В обозревателе решений разверните папку "Роли " в проекте ChatService.
Щелкните правой кнопкой мыши роль SignalRChat и выберите "Свойства". Перейдите на вкладку "Конфигурация". В разделе "Экземпляры" выберите 2. Вы также можете задать размер виртуальной машины Экстра Маленький.
Сохраните изменения.
В обозревателе решений щелкните правой кнопкой мыши проект ChatService. Выберите Опубликовать.
Если вы впервые публикуете в Windows Azure, необходимо скачать свои учетные данные. В мастере публикации нажмите кнопку "Войти, чтобы скачать учетные данные". При этом вам будет предложено войти на портал Windows Azure и скачать файл параметров публикации.
Щелкните "Импортировать " и выберите скачанный файл параметров публикации.
Нажмите кнопку Далее. В диалоговом окне "Параметры публикации " в разделе "Облачная служба" выберите созданную ранее облачную службу.
Нажмите кнопку Опубликовать. Развертывание приложения и запуск виртуальных машин может занять несколько минут.
Теперь при запуске приложения чата экземпляры ролей взаимодействуют через служебную шину Azure, используя тему служебной шины. Тема — это очередь сообщений, которую могут использовать несколько подписчиков.
Backplane автоматически создает топик и подписки. Чтобы просмотреть действия подписок и сообщений, откройте портал Azure, выберите пространство имен служебной шины и щелкните "Темы".
Появление активности сообщения на панели мониторинга может занять несколько минут.
SignalR управляет временем существования темы. Пока приложение развернуто, не пытайтесь вручную удалять разделы или изменять параметры раздела.