WCF BasicHttpBinding: ProxyAddress e UseDefaultWebProxy
Allinea l'indirizzo proxy esplicito di BasicHttpBinding e la selezione del proxy predefinito prima di modificare le credenziali di trasporto.
Un client del servizio generato può avere sia un endpoint del servizio sia impostazioni di binding relative al proxy. Iniziare identificando quale indirizzo appartiene a quale ruolo. Il servizio SOAP resta la destinazione; ProxyAddress indica un intermediario.
Per BasicHttpBinding, UseDefaultWebProxy seleziona il comportamento proxy configurato automaticamente e per impostazione predefinita vale true. Il contratto Microsoft non supporta la combinazione di quel valore true con un ProxyAddress esplicito non null. Rendere coerente la scelta invece di assegnare entrambi e supporre che uno vinca silenziosamente. Per un servizio SOAP raggiungibile pubblicamente su una rotta proxy pubblica non autenticata consentita, il elenco di proxy HTTP fornisce indirizzi candidati per ProxyAddress; non conservare credenziali proxy da un altro endpoint.
Verificare il binding effettivamente usato dall'endpoint
Un metodo helper può costruire il binding corretto mentre il client generato usa ancora un altro endpoint configurato. Ispezionare il binding assegnato alla chiamata che non riesce. Modificare una voce di configurazione che il client non ha mai selezionato non può influire sulla sua rotta.
Poi distinguere il tipo di credenziale proxy dal tipo di credenziale del servizio. Una password richiesta dal servizio SOAP non è automaticamente un account per l'intermediario di rete selezionato.
La modalità di sicurezza del trasporto è un'altra decisione. Passare a una modalità solo credenziali soltanto perché una vecchia risposta lo suggerisce modifica le ipotesi di trasporto; non dimostra che la rotta o l'account siano corretti. Conservare il TLS di destinazione previsto e usare la configurazione di autenticazione supportata dal client WCF distribuito e dal proxy.
Una diagnostica utile nomina l'endpoint del servizio, l'origine proxy selezionata, l'istanza di binding e la prima fase di risposta. Questo circoscrive un 407 senza trasformare un client del servizio generato in una raccolta di congetture di configurazione non correlate.