繁体   English   中英

从端点地址WCF服务生成客户端代理

[英]Generate client proxy from endpoint address WCF service

具有两个端点的WCF服务是否可以为客户端提供从特定端点生成其代理的方法? 我目前正在使用VS 2013中的“添加服务引用”功能,它将获得由两个合同定义的所有类。

我的两个合同定义了不同的请求/响应。 IServiceTCP提供类似管理员的方法,并在IServiceHttp中提供类似用户的方法。

由于我得到的客户端只能通过HTTP进行通信而且他不在同一个网络中(使tcp中的端点无用),我想为他提供一种方法来生成他的代理,只需要从http合同中获取所需的类。

我似乎可以为端点提供一个地址,该地址将附加到服务的基地址。 由于我是在IIS服务器后面托管的,如果我将地址“testhttp”提供给我的端点,它将被解析为“ http://localhost/MyService/Service.svc/testhttp ”。 我没有找到客户端使用该地址的方法。

 <service name="Namespace.Service" behaviorConfiguration="ServiceBehaviorA">
    <endpoint binding="wsHttpBinding" bindingConfiguration="ServiceBindingHttp" contract="Namespace.IServiceHttp"  />
    <endpoint binding="netTcpBinding" bindingConfiguration="ServiceBindingTCP" contract="Namespace.IServiceTCP" />
  </service>

我想避免创建两个服务来实现此目的。

谢谢,

不确定是否可以在不创建两个服务的情况下实现。 如果您尝试创建两个端点,则应该尝试以下操作:为两个端点提供不同的服务名称:

<service name="Namespace.ServiceA" behaviorConfiguration="ServiceBehaviorA">
    <endpoint binding="wsHttpBinding" bindingConfiguration="ServiceBindingHttp" contract="Namespace.IServiceHttp"  />
</service>

 <service name="Namespace.ServiceB" behaviorConfiguration="ServiceBehaviorA">
    <endpoint binding="netTcpBinding" bindingConfiguration="ServiceBindingTCP" contract="Namespace.IServiceTCP" />
</service>

<serviceHostingEnvironment >
            <serviceActivations>
                <add relativeAddress="ServiceA.svc" service="Namespace.ServiceA" />
                <add relativeAddress="ServiceB.svc" service="Namespace.ServiceB" />
</serviceActivations>/serviceHostingEnvironment>

现在可以通过访问两个端点

  1. HTTP://localhost/MyService/ServiceA.svc
  2. HTTP://localhost/MyService/ServiceB.svc

HTH。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM