martedì 26 gennaio 2010

WCF e la comunicazione TCP su IIS 7

Con il precendente post vi ho mostrato come abilitare all'interno di IIS 7 la possibilità a comunicazioni non HTTP. Ma questo non basta per esporre un servizio WCF, che utilizzi un binding basato ad esempio sul protocollo TCP , come il netTcpBinding.


Affinchè questo tipo di comunicazione venga associata ad un nostro servizio WCF, è innanzitutto necessario bindare il sito che ospiterà la nostra applicazione alla porta net.tcp, tramite l'utility a riga di comando Appcmd.
Ad esempio volendo abilitare questa porta per il "Default Web Site", presente nella collezione dei siti di IIS, il comando che deve essere eseguito dal prompt avviato con i privilegi di amministratore è

%windir%\system32\inetsrv\appcmd.exe set site "Default Web Site" -+bindings.[protocol='net.tcp',bindingInformation='808:*']


Si deve poi aggiungere la nostra applicazione WCF al "Default Web Site", tramite la console di gestione di windows, che si può avviare semplicemente digitando mmc.exe, nell'area di ricerca attivata cliccando sul bottone Start.
Dal menu file si sceglie l'opzione Aggiungi/Rimuovi Snap-in e si aggiunge la voce Gestione Internet Information Services (IIS)





Click con il bottone destro sul Default Web Site e si seleziona la voce Aggiungi applicazione

per aprire la finestra di dialogo dalla quale selezionare il percorso e il nome dell'applicazione da aggiungere





Supponendo che per l'applicazione aggiunta abbiamo scelto il nome TestWCF, dal prompt bisogna poi eseguire questo comando, per renderla raggiungibile con un protocollo tcp


%windir%\system32\inetsrv\appcmd.exe set app "Default Web Site/TestWCF" /enabledProtocols:http,net.tcp

Nel prossimo post analizzeremo cosa inserire nel web.config di un'applicazione WCF, per la quale vogliamo utilizzare il netTcpBinding.

Una nota per gli smanettoni: l'utilità da riga di comando Appcmd modifica il file di configurazione di WAS, che si trova nella cartella %windir%\system32\inetsrv\config e che si chiama applicationHost.config, che è editabile direttamente (anche se molti sconsigliano di farlo!)

Nessun commento: