2012-03-02 13 views
7

voy a tratar de hacer una larga historia corta:SignalR .NET Cliente: No se puede iniciar la conexión desde la aplicación Web App dominio

Quiero llamar a un método en un centro de operaciones en una aplicación web a partir de un conjunto de núcleo en mi aplicación. La razón es que tengo una serie de aplicaciones que eventualmente llaman al núcleo y desencadenan eventos (piense en la web móvil, el sitio de administración, la API, etc.). Deseo notificar a los usuarios del sitio de eventos de escritorio a medida que ocurren, usando SignalR.

Para disparar esto, creé una solución de 4 proyectos. Un proyecto central con el proxy del concentrador. Una aplicación web con el centro. Otra aplicación web sin el concentrador. Y finalmente una aplicación de consola.

Si llamo al núcleo desde la aplicación de la consola y trato de enviar un mensaje a los clientes del concentrador usando el proxy, todo funciona bien. Sin embargo, si trato de poner en núcleo y utilizar el proxy de una de las aplicaciones web, la ejecución se cuelga en la llamada a connection.start():

var connection = new HubConnection("..."); 
var hub = connection.CreateProxy("Spike.Hub"); 
connection.Start().Wait(); 

es la materia SignalR.Client no pretende ser utilizado desde el dominio de la aplicación de una aplicación web? ¿Por qué funciona como se espera en la aplicación de la consola, pero no desde una aplicación web?


Actualización: Me enganché mi pico en la fuente de SignalR y cuando se ejecuta desde una de las aplicaciones web, la ejecución se cuelga en la línea 130 de SignalR.Client.Connection. El _syncContext para dicha conexión es una instancia de AspNetSynchronizationContext, y al llamar a su método Post(), todo se detiene.

Respuesta

10

Hay un error en el SignalR.Client y lo encontró :)

+0

Hooray para mí: S - Continuará cualquier discusión en el tema GitHub. https://github.com/SignalR/SignalR/issues/221#issuecomment-4300487. – spot

Cuestiones relacionadas