Из приведенной выше конфигурации мы можем сделать вывод, что она принадлежит клиентской стороне. Однако функция WSDL службы WCF настраивается на стороне сервера. Он управляется разделом ServiceMetadata.
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
Поэтому, если мы хотим, чтобы протокол HTTP WSDL работал, нам нужно включить его на стороне сервера и применить поведение службы в службе. раздел (конечная точка должна находиться в разделе service
вместо раздела client
).
<system.serviceModel>
<services>
<service name="WcfService3.Service1" behaviorConfiguration="sb">
<endpoint address="" binding="basicHttpBinding" contract="WcfService3.IService1"></endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"></endpoint>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="sb">
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
Не стесняйтесь, дайте мне знать, если есть что-то, с чем я могу помочь.