Wcf si basa sui modello ABC (Address, Binding, Contract) questo modello è estremamente flessibile e ci permette ad esempio di cambiare il binding, cioè il modo in cui i servizi comunicano, senza modificare come sono fatti.
Esistono diversi tipi di bindig, il NetTcpBinding utilizza il protocollo di trasporto Tcp, i pacchetti sono compressi in binario a differenza del basicHttp o del wsHttp che sono in soap. Vediamo quindi come configurare un servizio che sfrutti il NetTcpBinding e come ospitarlo in IIS 7.5.
Per prima cosa vediamo come configurare il servizio wcf
<system.serviceModel>
<services>
<service name="MyService" behaviorConfiguration="MyServiceBehavior">
<endpoint address="" binding="netTcpBinding" bindingConfiguration="MyTcpConfiguration" contract="IMyService"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<bindings>
<netTcpBinding>
<binding name="MyTcpConfiguration">
<security mode="None"/>
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="MyServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
IIS 7 permette di ospitare servizi che utilizzino il protocollo Tcp tramite Windows Process Activation Services.
Per prima cosa verifichiamo che sia installato nelle Feature il Non-HTTP Activation
Sul sito che conterrà il nostro servizio aggiungiamo un nuovo binding, come tipologia net.tcp e come binding information la porta ad esempio 809:*
All’interno della Application negli Advanced Settings aggiungiamo il novo protocollo supportato.
Per consumare il web service adiamo a specificare l’indirizzo del endpoint così
<endpoint address="net.tcp://server:809/MyService.svc"
binding="netTcpBinding"
bindingConfiguration="MyBindingConfiguration"
contract="IDocumentService"
name="MyService" />
Tag di Technorati:
Wcf,
Servizi,
Tcp
posted @ giovedì 7 aprile 2011 20:28