我已多次尝试让我的WCF服务公开MetaData.相反,我一直保持例外:
在服务SecurityBroker实现的合同列表中找不到合同名称"IMetadataExchange" .将ServiceMetadataBehavior直接添加到配置文件或ServiceHost以启用对此合同的支持.
...使用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>
Run Code Online (Sandbox Code Playgroud)
所以我的meetadataExchange合约定义为mex很好,并且我已经看到了.我错过了什么愚蠢的东西?
编辑
如果有用,我的服务定义如下所示:
<%@ ServiceHost Language="C#" Debug="true" Service="IWW.MIGTurbo2.WCF.Security.SecurityBroker" Factory="System.ServiceModel.Activation.WebScriptServiceHostFactory" %>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8142 次 |
| 最近记录: |