2012-11-14 10 views
7

Ho creato una coppia di app per console basate su C# basate su questo SignalR Console app example.Distribuzione di segnale self-hostingR

Questo funziona brillantemente sul mio PC locale, e ora ho copiato l'app del server (più tutti i file dalla cartella bin/Release) sul mio server. Quando eseguo l'app del server, si trova felicemente in ascolto su "http://www.redacted.com:8088/".

In applicazione client, ho cambiato:

var _connection = new HubConnection("http://127.0.0.1:8088/"); 

a:

var _connection = new HubConnection("http://www.redacted.com:8088/"); 

Tuttavia io ora ottengo un errore non disponibile 503 Server quando si tenta di avviare la connessione. Sono un novizio di SignalR, e non sono riuscito a trovare un tutorial decente per quanto riguarda l'implementazione (in gran parte perché probabilmente ci sono tanti modi diversi di farlo a seconda dei requisiti che indovino).

Quindi le mie domande sono:

  1. Devo impostare nulla fino in IIS per questo lavoro (tenendo a mente non sto guardando questo essere basato sul web, solo consolarsi app per consolare app), o va bene solo eseguire il server exe e aprire la porta?

  2. Il mio server esegue Windows Server 2012 e ho aggiunto il mio exe all'elenco di applicazioni a cui è consentito effettuare connessioni e aggiunto una regola in ingresso per la porta 8088, c'è qualcos'altro che devo fare in per essere visibile al mio cliente?

+0

seconda tuo hosting potrebbe non essere in grado di andare tramite 8088 a causa della configurazione dell'infrastruttura, proverei qualcosa di più mainstream come 80 o 8080 se il server è responsabile anche di altri ruoli. Altrimenti mettiti in contatto con gli amministratori e senti se consentono il traffico su porti sconosciuti. – f0x

+0

Sto eseguendo da un'istanza virtuale di Windows Server 2008 su cui ho il controllo completo dell'amministratore. Per quanto ne so non dovrebbe esserci nulla che blocchi le porte tranne Windows Firewall, ma proverò ad usare la porta 8080 e vedere cosa succede (il server viene anche usato come server web sulla porta 80, quindi io stare lontano da quello). – Mottster

+0

Ora sembra che si stia connettendo, vale a dire, connection.Start() ... viene eseguito senza generare un'eccezione, ma quando tenta myHub.Invoke ottengo "Start deve essere chiamato prima che i dati possano essere inviati". – Mottster

risposta

1

Se hai qualcosa in questo senso sul server

 string url = "http://127.0.0.1:8088/"; 
     var server = new Server(url); 
     server.MapHubs(); 
     server.Start(); 

Prova vincolante per tutti gli IP (o gli host)

 string url = "http://*:8088/";