ich diesen WCF-Service-Vertrag haben (stark vereinfacht, aber achten Sie auf den Namensraum in es ist):Wie kann ich den Namespace eines Vertrags in der XML-Konfiguration eines WCF-Endpunkts angeben?
namespace Foo.Services.BarService
{
[ServiceContract]
interface BarContract {... }
}
In meinem app.config
(Client-Seite), konfiguriere ich einen Endpunkt für einige Service:
<endpoint address="..."
binding="..."
contract="Foo.Services.BarService.BarContract" />
Dies führt jedoch zu einem Fehler, der besagt, dass kein Endpunkt in der Clientkonfiguration gefunden wurde, die unterstützt. Ich kann diesen Fehler nur beheben, indem ich den contract
-Attributwert zu (d. H. Durch das Entfernen des Namespace) ändert.
Warum ist das? Woher könnte dieser Fehler kommen? Warum muss ich den Namespace-Teil eines Vertragstyps nicht erwähnen? Sollte das nicht noch mehr dazu führen, dass WCF keinen passenden Endpunkt findet?
Antworten auf die Fragen in @Ladislav Mrnka Kommentar unten:
Ich spreche von der Client-Seite. (Ich habe vergessen, dieses Bit zu erwähnen; Entschuldigung dafür.) Kann dieser Fehler möglicherweise von der Server-Seite kommen?
erzeugen ich den obenen Service-Vertrag, zusammen mit einer
BarClient
Klasse, die es implementiert, über visuelles Dienstverweis hinzufügen Anlage Studio. Ich habe die URL derBarService
angegeben, die von jemand anderem ausgeführt wird. Dort habe ich auch angegeben, dass der Dienst in den NamespaceFoo.Services.BarService
gestellt werden soll.Ich wollte den Dienst direkt über die,Klasse für mich automatisch generieren, nicht über eine
ChannelFactory<BarContract>
.
Ist das Problem bei der Service- oder Client-Konfiguration? Wie haben Sie den Kunden erstellt? –
@Ladislav, Ich habe eine Antwort auf Ihre Fragen am Ende meiner Frage angehängt. – stakx