Dobbiamo accedere a un servizio Web che utilizza soap11 ... nessun problema mi limiterò a impostare il binding come:Come posso creare questa associazione personalizzata al livello di programmazione?
BasicHttpBinding wsBinding = new BasicHttpBinding(BasicHttpSecurityMode.TransportWithMessageCredential);
Nope. Niente da fare. Così ho chiesto l'host del servizio perché stiamo avendo problemi di autenticazione e mi ha detto che la nostra configurazione necessari per avere questo costume vincolante:
<bindings>
<customBinding>
<binding name="lbinding">
<security authenticationMode="UserNameOverTransport"
messageSecurityVersion="WSSecurity11WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11"
securityHeaderLayout="Strict"
includeTimestamp="false"
requireDerivedKeys="true"
keyEntropyMode="ServerEntropy">
</security>
<textMessageEncoding messageVersion="Soap11" />
<httpsTransport authenticationScheme ="Negotiate" requireClientCertificate ="false" realm =""/>
</binding>
</customBinding>
</bindings>
L'unico problema è che stiamo creando il nostro non vincolante a livello di codice tramite la configurazione. Quindi, se qualcuno potrebbe indicarmi la giusta direzione per quanto riguarda la modifica del mio BasicHttpBinding in una custombinding conforme al valore .config fornito darò loro una grande stella d'oro lucente per il giorno.
Grazie per questo .. Avevo un problema simile in cui dovevo creare un altro progetto di classe che contenesse la logica per eseguire una chiamata di servizio esterna. Non ho davvero (non potuto) spostare la configurazione da app.config al web.config sottostante - e quindi le soluzioni di cui sopra sono perfette per questa istanza, per sovrascrivere la definizione del servizio. –