Я пытаюсь переключить свою службу WCF с привязок TCP на привязки HTTP, изменив app.config
, но когда я пытаюсь использовать службу WCF из тестового консольного приложения, я получаю эту ошибку:
Could not find default endpoint element that references contract
'ServiceReference1.IUsers' in the ServiceModel client configuration
section. This might be because no configuration file was found for
your application, or because no endpoint element matching this
contract could be found in the client element.
Вот новый app.config, использующий HTTP-привязки, который выдает мне ошибку выше:
<services>
<service name="Test.UserServ" behaviorConfiguration="ServiceBehavior">
<host>
<baseAddresses>
<add baseAddress="http://localhost:8000/Users" />
</baseAddresses>
</host>
<endpoint
address=""
binding="webHttpBinding" behaviorConfiguration="EndpointBehavior"
contract="Test.IUsers" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="EndpointBehavior">
<webHttp />
</behavior>
</endpointBehaviors>
</behaviors>
Вот старый рабочий app.config, который все еще использует TCPbindings:
<services>
<service name="Test.UserServ" behaviorConfiguration="TCPBehavior">
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8731/Users"/>
</baseAddresses>
</host>
<endpoint
address=""
binding="netTcpBinding" bindingConfiguration="TCPConfiguration"
contract="Test.IUsers"/>
<endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange"/>
</service>
</services>
<bindings>
<netTcpBinding>
<binding name="TCPConfiguration">
<security mode="None"/>
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="TCPBehavior">
<serviceMetadata/>
</behavior>
</serviceBehaviors>
</behaviors>
Что-то не так с конфигурацией или это связано с некоторыми ограничениями, накладываемыми HTTP-привязками, на которые я переключился?