Domanda

Utilizziamo BigIP per bilanciare il carico tra i nostri due server IIS. Di recente abbiamo distribuito un servizio WCF ospitato da IIS 6 su questi due server Windows Server 2003R2.

Ogni server è configurato con due intestazioni host: una per l'indirizzo del bilanciamento del carico e quindi una seconda intestazione host che punta solo a quel server. In questo modo possiamo fare riferimento a un server specifico nel gruppo con bilanciamento del carico per il debug.

Quindi, quando corriamo, abbiamo subito ricevuto l'errore:

  

Questa raccolta contiene già un indirizzo con schema http. In questa raccolta può esserci al massimo un indirizzo per schema.   Nome parametro: elemento

Ho fatto qualche ricerca e possiamo implementare un filtro per dirgli di ignorare quello degli host, ma non possiamo accedere al server da quell'indirizzo.

<serviceHostingEnvironment>
    <baseAddressPrefixFilters>
        <add prefix="http://domain.com:80"/>
    </baseAddressPrefixFilters>
</serviceHostingEnvironment>

Qual è la migliore soluzione in questo scenario che ci consentirebbe di accedere a un servizio WCF tramite http: // domain .com / service.svc e http://server1.domain.com/service.svc ?

Se dovessimo creare la nostra ServiceFactory come suggeriscono alcuni siti, qualcuno ha qualche codice di esempio su questo?

Qualsiasi aiuto è molto apprezzato.

EDIT: dovremo essere in grado di accedere al servizio WCF da uno dei due indirizzi, se possibile.

Grazie.

È stato utile?

Soluzione

Sul tuo bigIP Crea 2 nuovi server virtuali http://server1.domain.com/ http://server2.domain.com/

crea un pool per ogni VS con solo il server specifico al suo interno - quindi non ci sarà il bilanciamento del carico effettivo e accederai in quel modo. Se non disponi di IP esterni, puoi comunque utilizzare lo stesso IP del nome del tuo dominio di produzione e utilizzare semplicemente un'irule per indirizzare il traffico verso il pool appropriato

Spero che questo aiuti

Altri suggerimenti

L'URL che utilizza si basa sui collegamenti in IIS. Il sito Web ha più di un binding? In caso affermativo o il servizio WCF è utilizzato da più siti? Se lo è, allora sei SOL AFAIK. Abbiamo riscontrato questo problema. Fondamentalmente, può esserci un solo binding IIS per HTTP, altrimenti bombe.

Inoltre, ecco le informazioni su implementazione di una ServiceHostFactory . Funzionerà se è possibile che il tuo servizio WCF sia accessibile solo tramite 1 indirizzo (sfortunatamente per noi, questo non era possibile).

Quando devi testare una macchina specifica, puoi " bypassare " il bilanciamento del carico e assicurarsi che l'header host corretto sia inviato a keeep WCF felice modificando gli "host" file sul computer dal quale stai testando, ad esempio:

10.0.0.11 fino a 10.0.0.16 sono i sei host che si trovano nel cluster "cluster.mycompany.local", con un indirizzo IP con bilanciamento del carico di 10.0.0.10. Durante il test puoi aggiungere una riga al file hosts della macchina che dice " 10.0.0.13 cluster.mycompany.local " per poter colpire direttamente la terza macchina nel cluster.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top