Frage

In einem WCF -Dienst habe ich einen Endpunkt -Bindungssatz als Wshttpbinding. Wenn ich jedoch Visual Studio verwende, um Service Reference hinzuzufügen, zeigt meine Clients App.config die Bindung als BasisichTTPBinding an. Weiß jemand, warum dies möglicherweise passieren kann?

Mein Endpunkt im Service web.config (gehostet in IIS 7.5). Erhält eine Adresse von Basisadressen

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

Client App.config:

<client>
    <endpoint address="http://example.com/MyService.svc"
    binding="basicHttpBinding" bindingConfiguration="BasicHttpBinding_MyService"
    contract="Service.MyService" name="BasicHttpBinding_MyService" />
</client>
War es hilfreich?

Lösung

- Ladislav mrnka hat mich damit in die richtige Richtung hingewiesen. Vielen Dank.

Ich habe versucht, die Frage einfach zu halten, da ich dachte, die Antwort könnte einfach sein. Allerdings hätte ich meine Einrichtung ein wenig detaillierter erklären sollen, da die Antwort auf mein Problem lag.

Anstatt meinen Servicevertrag (IMYService) in meiner WCF -Serviceanwendung zu haben, hatte ich ihn in einem anderen Domain -Projekt, in dem ich alle meine Schnittstellen aufbewahre, damit sie in vielen verschiedenen Projekten wiederverwendet werden können. In meiner WCF -Dienstanwendung .Web.Config ließ ich den Service -Namen eher auf das Schnittstellenprojekt als auf die Implementierung zeigten. Dies führte dazu, dass VS2010 (svcutil.exe) ein Proxy und eine Konfiguration basierend auf Standardeinstellungen erstellt (ich nehme an, dass sich in der Maschine befindet.Config (für WCF 4)).

Um alle anderen zusammenzufassen, die auf dieses Problem stoßen können, war der Service -Name, der auf den falschen Standort zeigte. Stellen Sie sicher, dass der Servicename auf die Implementierung verweist (normalerweise in der WCF -Serviceanwendung - MyProject.myService) und dass der Endpunktvertrag auf den Servicevertrag verweist (in der WCF -Serviceanwendung oder des externen Projekts - MyProject.imyService oder AnotherProject.Interfaces.imyservice ).

Danke für deine Hilfe.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top