Un client de serviciu generat poate avea atât un punct final de serviciu, cât și setări de legare legate de proxy. Începeți prin a identifica ce adresă aparține cărei rol. Serviciul SOAP rămâne destinația; ProxyAddress numește un intermediar.

Pentru BasicHttpBinding, UseDefaultWebProxy selectează comportamentul de proxy configurat automat și, implicit, este true. Contractul Microsoft nu acceptă combinarea acelei valori true cu un ProxyAddress explicit care nu este null. Faceți alegerea coerentă în loc să le atribuiți pe amândouă și să presupuneți că unul câștigă în tăcere. Pentru un serviciu SOAP accesibil public pe o rută de proxy publică neautentificată permisă, lista de proxy-uri HTTP oferă adrese candidate pentru ProxyAddress; nu păstrați acreditări de proxy de la un alt punct final.

Verificați legarea folosită efectiv de punctul final

O funcție auxiliară poate construi legarea corectă în timp ce clientul generat folosește încă un alt punct final configurat. Inspectați legarea atribuită apelului care eșuează. Modificarea unei intrări de configurare pe care clientul nu a selectat-o niciodată nu poate afecta ruta acestuia.

Apoi distingeți tipul acreditărilor de proxy de tipul acreditărilor de serviciu. O parolă cerută de serviciul SOAP nu este automat un cont pentru intermediarul de rețea selectat.

Modul de securitate al transportului este o altă decizie. Trecerea la un mod doar cu acreditări doar pentru că un răspuns vechi sugerează acest lucru modifică ipotezele de transport; nu dovedește că ruta sau contul sunt corecte. Păstrați TLS-ul de destinație dorit și utilizați aranjamentul de autentificare acceptat de clientul WCF implementat și de proxy.

O diagnoză utilă numește punctul final de serviciu, sursa de proxy selectată, instanța de legare și primul stadiu de răspuns. Aceasta restrânge un 407 fără a transforma un client de serviciu generat într-o colecție de presupuneri de configurare fără legătură.

Articole similare