BlogServiceHost.Create()

WCF & Azure - Il blog di Fabio Cozzolino

Recent Posts

Tags

My

Twitter

Community

Archives

Email Notifications

Social Bar Widget

December 2008 - Posts

Buon Natale !!!

Tanti auguri di Buon Natale a tutti !!!

Net.Tcp, MEX Endpoints e PortSharing in WCF

Il PortSharing è un meccanismo che permette, come è facile intuire, di condividere la stessa porta su diversi servizi. Nel mio specifico caso mi serviva per esporre i metadati del mio servizio su un secondo endpoint. Partiamo con l'osservare la configurazione del servizio. Definisco un baseAddress acquisito come indirizzo primario del mio servizio e come indirizzo, con l'aggiunta del segmento mex, dei metadati esposti con l'utilizzo della specifica WS-MetadataExchange:

<services>
<service name="MyService"
behaviorConfiguration
="MyService_ServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:9999/MyService"/>
</baseAddresses>
</host>
<endpoint address=""
binding
="netTcpBinding"
contract
="IMyService"
bindingConfiguration
="MyService_netTcpBinding"/>
<endpoint address="mex"
binding
="netTcpBinding"
contract
="IMetadataExchange"
bindingConfiguration
="MyService_mexBinding"/>
</service>
</services>

I due endpoint fanno riferimento a due sezioni netTcpBinding dove imposto l'attributo portSharingEnabled:

<bindings>
<netTcpBinding>
<binding name="MyService_netTcpBinding" maxConnections="5"
portSharingEnabled="true">
<security mode="None">
<transport protectionlevel="None"/>
<security>
</binding>
<binding name="MyService_mexBinding"
portSharingEnabled="true">
<security mode="None">
<transport protectionlevel="None"/>
<security>
</binding>
</netTcpBinding>
</bindings>

Per abilitare la visualizzazione dei metadati impostiamo il relativo behavior del servizio:

<serviceBehaviors>
<behavior name="MyService_ServiceBehavior">
<serviceMetadata />
</behavior>
</serviceBehaviors>

Infine, affinchè tutto funzioni, da VS2008 Command Prompt dobbiamo eseguire, come amministratore della macchina, il tool da riga di comando:

C:\sc.exe config NetTcpPortSharing start= demand (Attenzione, lo spazio tra start= e demand è importante!!!)

Questo comando ci consente di avviare il servizio NetTcpPortSharing su richiesta, e quindi al primo utilizzo. Ora non ci resta che eseguire la nostra applicazione...Big Smile

Maggiori info.

Posted: Dec 06 2008, 04:26 PM by Fabio.Cozzolino | with no comments
Filed under:
Refactoring, Refactoring, Refactoring!!!

Refactoring continuo. Mi accorgo sempre di più come questo sia importante, quasi necessario. Ogni volta che vedo del codice, anche e soprattutto se scritto da me, sono tentato di riscriverlo completamente. In una forma migliore, più leggibile forse. Ma anche semplicemente per riorganizzarlo. Tendo a migliorare (chiaramente Stick out tongue) la parte di codice che mi passa tra le mani. Ovviamente il tutto senza causare regressioni.

Capita anche a voi? Avete anche voi questo istinto/bisogno irrefrenabile? Big Smile

Visual Studio 2008 Project Properties

Da oggi ho un fastidiosissimo problema su VS2008 SP1. In pratica non riesco a visualizzare le proprietà di nessun progetto. Causa problemi di connessione del nostro gestore nazionale, oggi non ho potuto chiedere a zio google perciò ho provato a far partire visual studio con il parametro /ResetSettings. Niente. Non ha funzionato. Stasera quindi ho chiesto consiglio e la risposta "sembra" essere arrivata. In pratica il tutto si dovrebbe risolvere con il comando:

devenv.exe /resetskippkgs

e dire che ci avevo pensato ma mi sembrava non c'entrasse nulla Sad e ormai stanco non ci ho neanche provato.

Domani a mente fresca sarà il mio primo pensiero appena in ufficio. Vi farò sapere... Smile

UPDATE: Funziona perfettamente !!!