Domanda

In un servizio WCF Ho un endpoint set vincolante wsHttpBinding. Tuttavia quando uso Visual Studio per Aggiungi riferimento al servizio i miei clienti app.config spettacoli il legame come basicHttpBinding. Qualcuno sa il motivo per cui questo può accadere?

Il mio Endpoint nel web.config di servizio (ospitato in IIS 7.5). Ottiene l'indirizzo da baseAddresses

<endpoint address=""
    binding="wsHttpBinding"
    bindingConfiguration="wsHttpServiceBinding"
    contract="MyProject.IMyService" />

app.config Cliente:

<client>
    <endpoint address="http://example.com/MyService.svc"
    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_MyService"
    contract="Service.MyService" name="BasicHttpBinding_MyService" />
</client>
È stato utile?

Soluzione

- Ladislav Mrnka mi ha segnalato nella giusta direzione con questo. Grazie mille.

Ho cercato di mantenere la questione semplice come ho pensato che la risposta può essere semplice. Tuttavia ho dovuto spiegare il mio set up in un po 'più in dettaglio come questo è dove la risposta al mio problema risiede.

Invece di avere il mio contratto di servizio (IMyService) che risiede nel mio WCF Application Service ho avuto in un altro progetto di dominio dove tengo tutti i miei interfacce in modo che possano essere riutilizzati in tutta molti progetti diversi. Nel mio servizio WCF Application .web.config ho avuto il nome del servizio che punta al progetto di un'interfaccia piuttosto che alla realizzazione. Ciò ha causato VS2010 (Svcutil.exe) per creare un proxy e di configurazione in base alle impostazioni predefinite (presumo risiedere nel machine.config (per WCF 4)).

Quindi, per riassumere per chiunque altro che può venire attraverso questo problema è stato il nome del servizio che punta alla posizione errata. Assicurarsi che il nome del servizio punti alla realizzazione (di solito in Application Service WCF - MyProject.MyService) e che i punti di contratto finale del contratto di servizi (nel Application Service WCF o progetto esterno - MyProject.IMyService o AnotherProject.Interfaces.IMyService ).

Grazie per tutto il vostro aiuto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top