Ошибка: невозможно получить метаданные из службы WCF
У меня есть успешно работающая служба WCF, которую я могу вызвать с помощью javascript. Однако я хочу вызвать его с помощью тестового клиента WCF, и им трудно это сделать. Мне сказали, что мне нужно убедиться, что я включил публикацию метаданных по указанному адресу. После прочтения документации я просто не вижу, что им предназначено для этого, это моя конфигурация:
<system.serviceModel>
<services>
<service name="CommentSessionIDWCFService"
behaviorConfiguration="CommentSessionIDBehavior">
<endpoint
address=""
behaviorConfiguration="CountryProvinceBehavior"
binding="webHttpBinding"
contract="ICommentSessionIDWCFService" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="CommentSessionIDBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="true"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="CountryProvinceBehavior">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
Я читал другие сообщения, но я не вижу, что нужно заполнить, и я просто продолжаю получать ошибки. Q в..
1) Правильно ли я говорю, что мне нужно настроить полную новую службу в моей конфигурации, чтобы показать метаданные?
2) Что я могу добавить в конфигурацию для публикации этих метаданных, чтобы я мог ссылаться на клиента?
Ответы
Ответ 1
Вам нужна конечная точка метаданных для вашей службы, вот пример.
<services>
<service name="MyService" behaviorConfiguration="MEX">
<endpoint
address="http://localhost:8000/MEX"
binding="mexHttpBinding"
contract="IMetadataExchange"
/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="MEX">
<serviceMetadata/>
</behavior>
</serviceBehaviors>
</behaviors>
Ответ 2
Установите httpGetEnabled
в true
и установите для параметра includeExceptionDetailInFaults
значение false
:
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>