Ecco un riepilogo dei passaggi di configurazione richiesti per l'hosting su Windows 2008r2 con IIS 7.5:
Update the SignalR application's web.config file per abilitare "esegui tutti i moduli gestiti per tutte le richieste" (in breve, questa è l'impostazione RAMMFAR).
Update the web page that uses SignalR per comunicare con il server: Aggiungere un riferimento alla libreria json2.js. Aggiungi un tag che impone la visualizzazione del contenuto in una modalità browser recente.
Set up a Windows Server 2008r2 with IIS 7.5 come segue: Installare la versione .NET Framework richiesta dall'applicazione SignalR. Creare un sito e associarlo al pool di applicazioni appropriato.
Aggiornamento del Signalr Application web.config file
Nel file web.config dell'applicazione SignalR, aggiungere l'impostazione per consentire l'esecuzione di tutti i moduli gestiti per tutte le richieste RAMMFAR. Questa impostazione era necessaria per ottenere l'applicazione di esempio SignalR in esecuzione su Windows 2008r2 e IIS 7.5 in tutti i browser.
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
</modules>
</system.webServer>
Aggiornare la pagina Web che utilizza SignalR
Nella pagina web applicazione che utilizza SignalR per comunicare con il server, aggiungere il seguente codice.
Aggiungere un riferimento alla libreria del parser JSON json2.js. Questo script fornisce un parser JSON per versioni precedenti del browser che non ce l'hanno. È possibile aggiungere lo script in uno dei due modi: Aggiungere i json2.js pacchetto Nuget al progetto, e quindi fare riferimento nella vostra pagina web:
o in alternativa, json2.js di riferimento su un CDN :
Aggiungere il tag seguente nella sezione di testa della pagina. Questo tag, in particolare il valore IE = edge, obbliga Internet Explorer a visualizzare il contenuto nella versione più recente disponibile, piuttosto che le modalità precedenti (come IE7) che impediscono il funzionamento del codice SignalR.
Configurare Windows Server 2008R2 e IIS 7.5
Come notato, ho costruito l'applicazione di esempio SignalR dalla Guida introduttiva di SignalR tutorial su .NET 4. Questo è uno scenario comune di hosting su Windows 2008R2 e IIS 7.5.Il server era una nuova installazione predefinita predefinita di Windows Server 2008r2 e IIS 7.5.
Installare la versione .NET Framework richiesta. In questo caso ho installato .NET Framework 4. Creare un nuovo sito in Gestione IIS e associare il sito a un pool di applicazioni. Usa pool di applicazioni in modalità integrata, la modalità classica non è supportata per SignalR. Per questa applicazione ho utilizzato il pool di applicazioni ASP.NET v4.0.
Dopo aver seguito i passaggi di installazione precedenti, sono stato in grado di distribuire la versione di .NET Framework 4 dell'esempio Getting Started con SignalR sul server e ha funzionato perfettamente in IE (versioni 8, 9 e 10) , Chrome e Firefox anche se utilizzava metodi di trasporto di fallback (per sempre frame in IE e eventi inviati dal server negli altri browser). La cosa interessante per gli sviluppatori SignalR è che, a parte i passaggi precedenti, non ho dovuto modificare una singola riga del codice SignalR in qualsiasi punto dell'applicazione per farlo funzionare.
Questo è un caso semplice, ma mostra che SignalR supporta realmente il "ripiego automatico" sui precedenti meccanismi di trasporto quando il supporto websockets non è disponibile sul server.
Non uso IIS, ma è possibile scrivere il proprio server (programma) che eseguirà questa roba per voi. Con websockets puoi connetterti dal browser a qualsiasi server e porta. – Zaffy
@Zaffy: Grazie. Ma perderò la funzione auto-fallback di SignalR se WebSockets non è disponibile. – ZeroHackeR
questa risposta http://stackoverflow.com/questions/17957949/does-self-hosted-signalr-require-windows-server-2012-in-order-to-use-websockets spiega perché non è possibile in modo più dettagliato le altre risposte – wal