2010-01-13 12 views
5

Ho endpoint definiti in un file di configurazione con un nome di dominio "falso". L'idea è che ciò renderebbe la distribuzione più semplice, poiché invece di modificare i file di configurazione, impostiamo semplicemente l'indirizzo IP del nome di dominio "falso" nei file degli host degli ambienti. Così, per esempio, sulla mia macchina dev locale, avrei una voce nel file hostsPerché gli endpoint WCF ignorano il file hosts?

127.0.0.1  fake.domain 

e su un ambiente di accettazione degli utenti che potrebbero avere

192.45.34.31 fake.domain 

ma nel mio file di configurazione vorrei solo avere l'endpoint

<endpoint address="http://fake.domain/someServiceBase/SomeService.svc" ... /> 

Tuttavia, WCF sembra ignorare completamente il file hosts. Posso copiare l'indirizzo in un browser e verrà visualizzato correttamente, ma il client WCF (che si trova nella casella dev locale) restituirà un errore "host non trovato".

Perché WCF ignora il file host?

Edit: Nota aggiuntiva, tutto funziona se sostituisco l'indirizzo endpoint per utilizzare l'indirizzo IP reale direttamente nel file di configurazione, ad esempio,

<endpoint address="http://127.0.0.1/someServiceBase/SomeService.svc" ... /> 

risposta

2

Perché WCF ignora il file hosts?

Hmm, ho il sospetto che non lo sia. Immagino che il tuo client stia effettuando una connessione, ma venga reindirizzato dal servizio.

C'è un articolo here che va in grande dettaglio sugli endpoint:

L'infrastruttura canale Windows Communication Foundation ruota attorno l'indirizzo fisico dal momento che è responsabile per la ricezione dei messaggi in arrivo utilizzando un particolare protocollo di trasporto in un luogo specifico. Il dispatcher di Windows Communication Foundation, d'altra parte, è protetto da tali dettagli di rete e si concentra invece sulla mappatura del messaggio in arrivo su un endpoint e, infine, su una chiamata al metodo.

+0

A meno che la stessa WCF non esegua tale reindirizzamento, quindi no. I servizi coinvolti non fanno alcun reindirizzamento. Inoltre, se sostituisco l'indirizzo dell'endpoint con l'indirizzo IP effettivo, tutto funziona. – Nathan

Problemi correlati