相关疑难解决方法(0)

在WCF服务中公开webHttpBinding端点

我创建了一个WCF服务并公开了三个端点,即basicHttpBinding,wsHttpBinding和webHttpBinding.这是我使用WCF进行实验的测试服务.但是,每当我使用.svc文件添加服务引用时,我只获得两个(基本和ws)端点.由于某种原因,似乎没有第三个(webHttpBidning)端点被暴露.

要重现此问题,请创建WCF应用程序项目,删除Service1服务,添加新项>名为TestService的WCF服务,并将配置文件更改为以下内容:

<system.serviceModel>
<services>
  <service name="WcfTestService.TestService" behaviorConfiguration="TestServiceBehavior">
    <host>
      <baseAddresses>
        <add baseAddress="http://localhost/WcfTestService/TestService.svc"/>
      </baseAddresses>
    </host>
    <endpoint address="basic"
              binding="basicHttpBinding"
              contract="WcfTestService.ITestService" />
    <endpoint address="ws"
              binding="wsHttpBinding"
              contract="WcfTestService.ITestService" />
    <endpoint address="web"
              binding="webHttpBinding"
              contract="WcfTestService.ITestService" />
    <endpoint address="mex"
              binding="mexHttpBinding"
              contract="IMetadataExchange" />
  </service>
</services>
<behaviors>
  <serviceBehaviors>
    <behavior name="TestServiceBehavior">
      <serviceMetadata httpGetEnabled="true" />
    </behavior>
  </serviceBehaviors>
  <endpointBehaviors>
    <behavior name="webBehavior">
      <webHttp />
    </behavior>
  </endpointBehaviors>
</behaviors>
Run Code Online (Sandbox Code Playgroud)

这是ITestService.cs的代码:

[ServiceContract]
public interface ITestService
{
    [OperationContract]
    [WebInvoke]
    Boolean ValidateUser(User user);
}

[DataContract]
public class User
{
    [DataMember(Name = "Name")]
    public String UserName { get; set; }
    [DataMember] …
Run Code Online (Sandbox Code Playgroud)

c# wcf wcf-binding

10
推荐指数
1
解决办法
3万
查看次数

标签 统计

c# ×1

wcf ×1

wcf-binding ×1