我已经尝试了好几次让我的WCF服务暴露元数据。相反,我一直保持异常:WCF元数据不能正常工作
合同名称“IMetadataExchange接口” 不能在由服务 SecurityBroker实施 合同的名单上找到。直接向 配置文件或 ServiceHost添加ServiceMetadataBehavior以启用对此合同的支持 。
...当使用IE手动浏览服务时。
(我假设这是一样的道理,为什么我的客户端应用程序无法生成服务引用婴儿的步骤和所有。)
可是我的web.config看起来不错:
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" />
<behaviors>
<endpointBehaviors>
<behavior name="webHttpEnablingBehaviour">
<webHttp />
</behavior>
</endpointBehaviors>
<serviceBehaviors>
<behavior name="webHttpEnablingBehaviour">
<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service name="IWW.MIGTurbo2.WCF.Security.SecurityBroker">
<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
<endpoint address=""
binding="webHttpBinding"
bindingConfiguration="default"
contract="IWW.MIGTurbo2.WCF.Security.ISecurityBroker"
behaviorConfiguration="webHttpEnablingBehaviour">
</endpoint>
</service>
</services>
<client />
<bindings>
<webHttpBinding>
<binding name="default" />
</webHttpBinding>
</bindings>
</system.serviceModel>
所以我有我的IMetadataExchange合同定义与mex罚款,并迷上了,据我所知。我错过了一些愚蠢的东西吗?
编辑
我的服务定义如下图所示,如果这是有用的:
<%@ ServiceHost Language="C#" Debug="true" Service="IWW.MIGTurbo2.WCF.Security.SecurityBroker" Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory" %>
优秀,这是得到了它!非常感谢。 – 2009-05-18 09:55:29