2012-12-28 11 views
15

a cosa serve l'indirizzo di base ... Voglio dire qual è il significato dell'indirizzo di base? se ometto l'indirizzo di base, quale problema può verificarsi?Qual è l'uso dell'indirizzo di base nel servizio WCF

quando è richiesto l'indirizzo di base?

in base alle voci di configurazione seguenti ci sono due indirizzi di base ... perché è richiesto l'indirizzo di due indirizzi di base. quando le persone danno più indirizzi di base? basta vedere il sotto 2 indirizzo di base e dimmi perché le persone danno due indirizzi di base perché non uno ... c'è qualche motivo specifico?

<host> 
    <baseAddresses> 
    <add baseAddress="net.tcp://localhost:1645/ChatServer/"/> 
    <add baseAddress="http://localhost:1648/ChatServer/"/> 
    </baseAddresses> 
    </host> 
+1

Beh, mi sembra una buona domanda, è certamente qualcosa che sto cercando di trovare una risposta al momento e il fatto che sia una domanda valida è evidenziato dalla qualità della risposta di marc_s qui sotto. –

risposta

25

un indirizzo di base ("schema" una per - ad esempio uno per http, uno per net.tcp ecc) può definire la "base" del tuo indirizzo - che è davvero utile se si intende specificare più punti finali.

Un indirizzo di base è mai richiesto - è una cosa opzionale, che può aiutarti a semplificarti la vita.

Avere un indirizzo di base consente di specificare solo la parte "relativa" diversa per ogni indirizzo di servizio effettivo.

Immaginate che si desidera avere gli endpoint di tre servizi - o è possibile definire tutti a parte, completamente, in un qualcosa di configurazione simile a questo:

<service name="Test1"> 
    <endpoint name="endpoint1" 
     address="http://yourserver/yourservices/test1/service1" ..... /> 
    <endpoint name="endpoint2" 
     address="http://yourserver/yourservices/test1/service2" ..... /> 
    <endpoint name="endpoint3" 
     address="http://yourserver/yourservices/test1/service3" ..... /> 
</service> 

o è possibile definire le parti comuni specificando una base indirizzo e quindi avere più facili da leggere "relativi" indirizzi:

<service name="Test1"> 
    <host> 
     <baseAddresses> 
     <add baseAddress="http://yourserver/yourservices/test1/"/> 
     </baseAddresses> 
    </host> 
    <endpoint name="endpoint1" 
     address="service1" ..... /> 
    <endpoint name="endpoint2" 
     address="service2" ..... /> 
    <endpoint name="endpoint3" 
     address="service3" ..... /> 
</service> 

quindi, utilizzando un indirizzo di base può rendere più facile per specificare più endpoint - e si può risparmiare un po 'di battitura.

Inoltre: notare che gli indirizzi di base sono davvero utili solo se si è self-hosting il servizio WCF. Se si utilizza IIS per ospitare il servizio WCF, la posizione del file *.svc determina realmente "l'indirizzo di base" del servizio, ad es. avere un indirizzo di base in questo caso non fa alcuna differenza/non aiuta affatto.

+0

se puoi per favore guarda nella mia domanda: https://stackoverflow.com/questions/44277334/wcf-multiple-endpoints – FrenkyB

Problemi correlati