PROBLEMI SCHEMA LOCATIONS WCF - Dietro al Firewall
NTTLuke
NTTLuke non è online. Ultima attività: 14/04/2009 12.21.27NTTLuke
il 9 gennaio 2009 alle 09:58
2 messaggi dal 22 maggio 2006
ciao a tutti
sono 2 giorni che sto impazzendo con il segente problema :

Abbiamo sviluppato e testato correttamente ( ambiente di sviluppo) un nuovo servizio WCF in azienda.
Il nostro server di produzione , in DMZ , è posizionato dietro ad un firewall che redirige l'ip esterno ( IPEXT) su quello interno ( IPINT)

http://IPEXT/App/Servizio.svc?wsdl

ma gli schema locations presenti nel wsdl sono errati perchè puntano al server interno.

.....
<wsdl:import namespace="http://IPExt/App/" location="http://IpINT/App/Servizio.svc?wsdl=wsdl0" />
- <wsdl:types>
- <xsd:schema targetNamespace="http://tempuri.org/Imports">
<xsd:import schemaLocation="http://IpINT/App/Servizio.svc?xsd=xsd0" namespace="http://tempuri.org/" />
</xsd:schema>
.....

infatti se includo il servizio da un client nella rete aziendale funziona ( giustamente ) , se lo faccio da un client non nella intranet ...NON FUNZIONA ( giustamente lui non sa chi è quel nome di rete interno)

come posso fare a forzare lo schemalocation nel mio file Web.config del servizio?

Spero di essere stato chiaro

Grazie per l'aiuto
CIao
Luke

Naturalmente il test a cui accennavo all'inizio è stato fatto nella intranet
Modificato da NTTLuke il 09 gennaio 2009 17.06 -
RE: PROBLEMI SCHEMA LOCATIONS WCF - Dietro al Firewall
Ricciolo
Ricciolo non è online. Ultima attività: 06/02/2010 11.33.28Ricciolo Top Poster
il 14 gennaio 2009 alle 09:58
Domanda interessante
Hai due strade:
- salvare tutto il wsdl da browser, compreso di xsd che importa ecc. Modificare gli uri in essi contenuti. Pubblichi questi file dove vuoi, raggiungibili dall'esterno. Specifichi tramite ServiceBehavior o tramite /serviceBehaviors/behavior/serviceMetadata con l'attributo externalMetadataLocation il wsdl alla quale puntare, mettendo appunto l'uri pubblico al wsdl.

- creare manualmente il ServiceHost o tramite ServiceHostFactory in modo da indicare manualmente qual'è l'indirizzo sulla quale il tuo servizio resta in ascolto; di conseguenza cambieranno anche gli uri del wsdl autogenerato. Guarda per esempio qua
http://blogs.msdn.com/rampo/archive/2007/06/15/supporting-multiple-iis-bindings-per-site.aspx

Ciao

Il mio blog
Homepage
RE: PROBLEMI SCHEMA LOCATIONS WCF - Dietro al Firewall
NTTLuke
NTTLuke non è online. Ultima attività: 14/04/2009 12.21.27NTTLuke
il 14 gennaio 2009 alle 10:45
2 messaggi dal 22 maggio 2006
Grazie Cristian
temporaneamente ho applicato la soluzione 1 e funziona
adesso proverò a implementare la 2.
Ma secondo te è un problema che dovranno sistemare oppure è cosi "by design" ?
O forse è stato pensato espressamente per IIS 7 ( sul quale non ho approfondito) che mette a disposizione qualche barbatrucco?

Ti ringrazio cmq per l'aiuto
ciao

Luca
RE: PROBLEMI SCHEMA LOCATIONS WCF - Dietro al Firewall
Ricciolo
Ricciolo non è online. Ultima attività: 06/02/2010 11.33.28Ricciolo Top Poster
il 14 gennaio 2009 alle 11:43
Prova anche ad usare solo il baseAddress
http://www.winfxitalia.com/script/86/Specificare-Binding-Utilizzare-IIS-Servizi-WCF.aspx

Comunque è così by design e non credo cambierà. Per prima cosa occorre che ogni endpoint ascolti su un solo indirizzo o più indirizzi a seconda del binding e questi vengono preso automaticamente dalla macchina (non può sapere che sei in una lan ecc).
Devi considerare che in teoria un servizio non è sempre esposto via http e lo standard per conoscere il contratto non è più il wsdl, o meglio si è affiancata WS-Metadataexchange. Inoltre la generazione del wsdl è un piacere che ci fanno. In teoria andrebbe fatto a manina e passato a chi vuole usarlo

Ciao

Il mio blog
Homepage

 

Torna al forum |   Feed RSS
ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
COMMUNITY
ULTIMI MESSAGGI
UTENTI ONLINE
MEDIA
IN EVIDENZA
MISC
Powered by .db Forums "Caesar Reborn" v. 2010.2.8