Fondamentalmente, nel tuo servizio, dovresti essere in grado di definire qualsiasi numero di endpoint di servizio su un numero qualsiasi di porte.
Ci sono due modi per farlo:
- definire un indirizzo di base e un indirizzo relativo nel endpoint del servizio
- definire il indirizzo completo in ciascun endpoint
Se fai l'opzione n. 1, avrai qualcosa del genere:
<service name="YourService">
<host>
<baseAddresses>
<add baseAddress="net.tcp://YourServer:5151/Services" />
</baseAddresses>
</host>
<endpoint name="endpoint1"
address="Service1"
binding="netTcpBinding"
contract="IYourService" />
<endpoint name="endpoint2"
address="Service2"
binding="netTcpBinding"
contract="IYourService" />
</service>
Quindi, in questo caso, si hanno due endpoint del servizio per lo stesso contratto, e saranno in ascolto su URL
net.tcp://YourServer:5151/Services/Service1
e
net.tcp://YourServer:5151/Services/Service2
si può avere endpoint del servizio mulitple, ma solo un indirizzo di base.
L'altra opzione è quella di specificare nessun indirizzo di base e specificare il proprio indirizzo di servizio completo nel endpoint direttamente:
<service name="YourService">
<endpoint name="endpoint1"
address="net.tcp://YourServer:5151/Services/Service1"
binding="netTcpBinding"
contract="IYourService" />
<endpoint name="endpoint2"
address="net.tcp://YourServer:6868/Services/Service2"
binding="netTcpBinding"
contract="IYourService" />
</service>
In questo caso, dal momento che si sta definendo l'intero indirizzo nell'endpoint, è possibile scegliere due diverse porte TCP, una per ciascun endpoint. Questo dovrebbe funzionare senza problemi. Si hanno due endpoint separati su due porte separate, sia in ascolto che in fase di manutenzione dalla stessa classe di servizio in background.
Marc
fonte
2009-09-13 06:52:57
Ho letto da qualche parte che BaseAddresses viene ignorato in un ambiente di intrattenimento. – Konstantin
Sarò d'accordo con il tuo commento e fornirò un link che dice così. Quando si tratta di IIS, gli indirizzi di base sono fondamentalmente ignorati, ma l'esempio sopra rimane valido a causa degli indirizzi dei punti finali forniti. Vengono utilizzati implicitamente con le informazioni sul bind del sito in IIS. http://msdn.microsoft.com/en-us/magazine/cc163412.aspx – dyslexicanaboko