我对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?我对此很陌生。
答案 0 :(得分:0)
以下行应公开wsdl的元数据:
<serviceMetadata httpGetEnabled="true"/>
在您的浏览器中,转到svc
的任何网址,并在其末尾添加?wsdl
。
http://localhost:<Port>/<OptionalFolders/>MyService.svc?wsdl
如果一切正常,你应该有一堆XML。