Я тестирую приложение SignalR, которое будет работать в веб-роли Azure. У меня есть поток фоновой обработки, созданный в OnStart WebRole.
Когда я пытаюсь использовать IHubContext для отправки группового сообщения, он терпит неудачу без ошибок - сообщение никогда не получается в клиенте концентратора. Тот же код, созданный внутри Global.asax, будет работать правильно.
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports Microsoft.WindowsAzure
Imports Microsoft.WindowsAzure.Diagnostics
Imports Microsoft.WindowsAzure.ServiceRuntime
Imports Microsoft.AspNet.SignalR
Imports System.Threading.Tasks
Public Class WebRole
Inherits RoleEntryPoint
Public Overrides Function OnStart() As Boolean
Task.Factory.StartNew(Sub() AsyncTaskTest())
Return MyBase.OnStart()
End Function
Private Sub AsyncTaskTest()
Do
Threading.Thread.Sleep(10000)
Dim Context As IHubContext = GlobalHost.ConnectionManager.GetHubContext(Of Testub)()
Context.Clients.Group("testgroup").Message("This is a delayed message from the WebRole thread.")
Loop
End Sub
End Class
Можно ли таким образом использовать IHubContext? Считается ли это отдельной сборкой и потребует ли использования HubConnection? Если я не могу использовать IHubContext, я вернусь к использованию этого внутри Global.asax и сохраню работоспособность веб-приложения.
Спасибо, Даниэль