Я знаю, что об этом спрашивали много раз и отвечали много раз, но все предоставленные образцы, на которых должен работать, похоже, не хотят работать на меня сегодня.
Когда я пытаюсь запустить хост, я получаю следующую ошибку:
"Не удалось найти имя контракта 'IMetadataExchange' в списке контрактов, реализованных службой TraceService. Добавьте ServiceMetadataBehavior в конфигурациюфайл или непосредственно в ServiceHost, чтобы включить поддержку этого контракта. "
Моя служба размещена на управляемом хосте службы Windows в соответствии с примером Microsoft: http://msdn.microsoft.com/en-us/library/ms733069%28v=vs.90%29.aspx
А вот мой хорошийи простой конфиг:
<system.serviceModel>
<services>
<service name="Daff.Lae.Service.TraceService">
<endpoint address="" binding="wsHttpBinding" name="TraceService" contract="Contracts.Service.ITraceService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8080/TraceService" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="DefaultBehavior">
<serviceDebug includeExceptionDetailInFaults="true"/>
<serviceMetadata httpGetEnabled="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Конечно, проблема становится более интересной, когда нет ошибок, если я уберу эту строку:
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
Любая помощь будет очень очень очень цениться:)