WCF Błąd podczas wykonywania: Ręczne adresowanie jest włączone w tej fabryce, więc wszystkie wysłane wiadomości muszą być wstępnie zaadresowane
Mam usługę WCF hostowane z WebHttpBinding. Usługa jest bardzo prosta, umowa operacyjna, która akceptuje wiele parametrów. Mój klient WCF, wygenerowany automatycznie po użyciu „Dodaj odwołanie do usługi”, nie jest w stanie bezpośrednio korzystać z usługi WCF. Błąd występuje tylko dla WebHttpBinding, ale nie dla pozostałych.
Po stronie serwera
[OperationContract]
[WebInvoke(Method = "POST", UriTemplate = "Submit2String", RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Wrapped)]
string Submit2String(string input1, string input2);
Strona klienta
ExpenseServiceClient proxy = new ExpenseServiceClient();
proxy.Submit2String("test1", "test2");
Gdy testuję powyższy kod, pojawia się następujący błąd:
Error: InvalidOperationException was unhandled by user code
Manual addressing is enabled on this factory, so all messages sent must be pre-addressed.
Oto jak wygląda mój wygenerowany plik konfiguracyjny po użyciu „Dodaj usługę referencyjną”:
<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>