WCF .NET Core - WsHttpBinding配置project.json

时间:2016-07-05 18:03:17

标签: wcf asp.net-core-1.0

如何使用.NET核配置wsHttpBinding,我应该在Project.json文件中配置吗?在.NET Core之前,配置如下所示

<system.serviceModel>
<bindings>
  <wsHttpBinding>
    <binding name="IService_Endpoint">
      <security mode="None" />
    </binding>
  </wsHttpBinding>
</bindings>
<client>
  <endpoint address="http://serviceURL/Service.svc"
      binding="wsHttpBinding" bindingConfiguration="IService_Endpoint"
      contract="IService" name="IService_Endpoint" />
</client>

我找到了一篇看起来像我正在寻找的文章,但它的BasicHttpBinding,我需要wsHttpBinding。

ChannelFactory<IGetPeopleService> factory = null;  
IGetPeopleService serviceProxy = null;  
Binding binding = null;

binding = new BasicHttpBinding(BasicHttpSecurityMode.None);  
factory = new ChannelFactory<IGetPeopleService>(binding, new EndpointAddress("http://localhost/people.svc"));  
serviceProxy = factory.CreateChannel();

var result = serviceProxy.GetPeopleData(100);

1 个答案:

答案 0 :(得分:2)

它应该如下所示:

ChannelFactory<IGetPeopleService> factory = null;  
IGetPeopleService serviceProxy = null;  
Binding binding = null;

binding = new WsHttpBinding(SecurityMode.None);  
factory = new ChannelFactory<IGetPeopleService>(binding, new EndpointAddress("http://localhost/people.svc"));  
serviceProxy = factory.CreateChannel();

var result = serviceProxy.GetPeopleData(100);

通常,BasicHttpBinding替换WsHttpBinding

添加信息

取自this answer

您需要在project.json中添加对System.ServiceModel的引用,如下所示:

{
  "commands": {
      "run": "run"
  },
  "frameworks": {
      "dnx451": {
          "dependencies": {
              "Microsoft.AspNet.Mvc": "6.0.0-beta2"
          },
          "frameworkAssemblies": {
              "System.ServiceModel": "4.0.0.0"
          }
      }
  }
}

请注意,这个答案适用于ASP.NET 5 Pre-Release。