WCF服务不发布wsdl

时间:2014-10-17 14:42:56

标签: c# web-services wcf service wsdl

我对WCF服务很陌生,但我从来没有理解绑定和所有这些。我现在拥有的服务,如果在WCFTestClient中进行测试,但没有公开WSDL供其他应用程序使用,则可以正常工作。我不确定它是如何完成的。这是代码:

<system.serviceModel>
<behaviors>
  <serviceBehaviors>
    <behavior>
      <serviceMetadata httpGetEnabled="true"/>
      <serviceDebug includeExceptionDetailInFaults="false"/>
    </behavior>
  </serviceBehaviors>
</behaviors>

<bindings>
  <basicHttpBinding>
    <binding name="DefaultBindingConfig">
      <!--<security mode="none">
        <transport clientCredentialType="none" />
      </security>-->

    </binding>
  </basicHttpBinding>
</bindings>

<services>
  <service name="Service.SecurityService">
    <endpoint address="" 
              name="SecurityServiceEndpoint" 
              binding="basicHttpBinding" 
              bindingConfiguration="DefaultBindingConfig" 
              contract="Service.Contracts.ISecurityService" />
    <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
  </service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />

[ServiceContract]
  public interface ISecurityService
  {
    [OperationContract]
    ApplicationSecurity GetFunctionsAllowedForUser(string userName, string applicationName);    
}

我如何才能使这个服务公开WSDL?我对此很陌生。

1 个答案:

答案 0 :(得分:0)

以下行应公开wsdl的元数据:

<serviceMetadata httpGetEnabled="true"/>

在您的浏览器中,转到svc的任何网址,并在其末尾添加?wsdl

http://localhost:<Port>/<OptionalFolders/>MyService.svc?wsdl

如果一切正常,你应该有一堆XML。