我有一个 WCF 服务公开了一些 34 方法。直到今天,元数据交换使用MetadataExchangeClient
工作得很好,但突然我开始收到以下异常:
元数据包含无法解析的引用:http://localhost:1150/service.svc?wsdl=wsdl0
最“有趣”的一点是,如果我在服务合同中注释掉一些方法(无论是哪一个),从而使服务暴露的方法更少,我就能恰到好处地获取元数据。设置web.config
读取
<system.serviceModel>
<services>
<service name="(...)" serviceBehavior="(...)">
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="(...)"><serviceMetadata httpGetEnabled="True"></behavior>
<serviceBehaviors>
</behaviors>
所有名称都是命名空间限定的,并且在公开 15 个方法时一切正常。每当我尝试公开更多内容时,无论是哪一个,我都会得到那个例外。我究竟做错了什么?