WCF-Fehler beim Ausführen: Die manuelle Adressierung ist in dieser Fabrik aktiviert, daher müssen alle gesendeten Nachrichten voradressiert werden
Ich habe einen mit WebHttpBinding gehosteten WCF-Dienst. Der Service ist sehr einfach, ein Betriebsvertrag, der mehrere Parameter akzeptiert. Mein WCF-Client, der nach Verwendung der "Dienstreferenz hinzufügen" automatisch generiert wurde, kann den WCF-Dienst nicht direkt verwenden. Der Fehler tritt nur bei WebHttpBinding auf, nicht bei den anderen.
Serverseite
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "Submit2String", RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Wrapped)]
string Submit2String(string input1, string input2);
Client-Seite
ExpenseServiceClient proxy = new ExpenseServiceClient();
proxy.Submit2String("test1", "test2");
Wenn ich den obigen Code testweise ausführe, wird folgende Fehlermeldung angezeigt:
Error: InvalidOperationException was unhandled by user code
Manual addressing is enabled on this factory, so all messages sent must be pre-addressed.
So sieht meine automatisch generierte Konfigurationsdatei aus, nachdem Sie die "Dienstreferenz hinzufügen" verwendet haben:
<system.serviceModel>
<bindings>
<webHttpBinding>
<binding name="webHttp">
<security mode="None">
<transport clientCredentialType="None" />
</security>
</binding>
</webHttpBinding>
</bindings>
<client>
<endpoint binding="webHttpBinding"
bindingConfiguration="webHttp"
contract="ExpenseService.IExpenseService"
address="http://localhost/myservices/ExpenseService.svc">
</endpoint>
</client>
</system.serviceModel>