Tutti gli attacchi HTTP funzionano con il protocollo TCP per il livello di trasporto. Pertanto, è possibile utilizzare i binding HTTP e IIS.6 per ospitare un servizio WCF eseguito su una porta TCP specifica.
Ecco un walktrough su come raggiungere questo obiettivo:
configurare il servizio per l'esecuzione sul porta desiderata dal file di configurazione (o il codice):
<service name="WCFService" behaviorConfiguration="DefaultBehaviour">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/WCFService" />
</baseAddresses>
</host>
<endpoint address="mex" binding="mexHttpBinding" bindingConfiguration="" name="WCFService_mexEndpoint" contract="IMetadataExchange" />
<endpoint address="" binding="wsHttpBinding" bindingConfiguration="DefaultBinding" name="WCFService_Endpoint" contract="WCFService.IService1" />
in IIS creare un sito Web (o directory virtuale) e co nfigure è vincolante per l'esecuzione sulla porta scelta nella configurazione del servizio baseAddress (8000 per l'esempio sopra).
Il risultato dei passaggi precedenti è un servizio WCF che viene eseguito sulla porta TCP 8000 per il livello di trasporto, utilizzando HTTP come protocollo di trasporto.
Modifica: Credo che stai facendo un po 'di confusione qui. Se quello che stai cercando di ottenere è un pacchetto binario trasmesso, l'unica soluzione disponibile è il binding net.tcp, che non è compatibile con IIS.6. Se si desidera essere in grado di selezionare la porta TCP della connessione, qualsiasi associazione HTTP può eseguire questa operazione come illustrato nell'esempio precedente e può essere utilizzata in IIS.6.
Quindi, fondamentalmente, in Windows XP che ospita n consumando può essere fatto in 3 modi 1.Self-hosting 2.IIS 3.as un servizio di Windows così l'apertura di una porta TCP e lo consuma, rientra auto- hosting o è un altro modo di hosting n consumando servizi wcf o c'è un altro modo cioè sotto TCP? – kurozakura