2010-06-23 52 views
3

如果需要在异构环境中的WAS托管的服务中公开多个端点(例如,一个使用basicHttpBinding,另一个使用netTcpBinding),那么如何执行?WAS托管的WCF服务中的单个合同的多个端点?

我读过的关于WAS端点配置的一切都表明,端点地址和主机基地址应该留空,因为WAS应该通过路径到.svc文件和协议自动解析地址。

但是,在不解释地址的情况下,为同一合同定义HTTP端点和TCP端点似乎是不可能的。到目前为止,我的每一次尝试都让我感到co“的”一个绑定实例已经被关联到聆听uri“的错误。

想法?

感谢

+0

它不应该显示错误绑定地址固定加入httpGetUrl hainvg同样的问题如果您为每个端点指定不同的基础URL。你可以在这里发布你的配置文件代码吗? – decyclone 2010-06-23 19:05:00

+0

@decyclone: 从我读过的MSDN中,基地址不应该用WAS指定。 WAS应该通过协议和.svc文件的路径来解析地址。由于两个端点使用不同的协议,每个协议都应该唯一解决。 谢谢 – user364825 2010-06-23 19:14:27

回答

0

据我了解,在* .svc文件仅适用于HTTP协议,如可行你可以用它来连接你的basicHttpBinding。在这种情况下,你是绝对正确的 - 服务的基地址和端点的地址属性被忽略 - 服务URI由服务器名称,可选的端口,SVC文件所在的虚拟目录以及服务器的名称和扩展名SVC文件本身。

所以只要你不需要多个不同的类HTTP协议和端点,那一个SVC文件就应该处理HTTP流量。

但是,这些选项不适用于非http协议,如netTcpBinding。在这种情况下,你需要在你的web.config中定义一个端点地址(可能是一个适当的基地址的相对路径)。

+0

感谢您的回复。 如果我没有指定主机基地址,并且将WAS配置文件中的netTcpBinding端点的端点地址配置为“/ tcp”,并将请求发送到net.tcp://localhost/MyService/Service.svc/tcp,请求似乎路由正确。另外,如果我从该配置生成代理,则客户端地址将生成为net.tcp://localhost/MyService/Service.svc/tcp(与以前相同的addr)。 这两个因素似乎意味着WAS使用TCP绑定的协议和SVC文件路径解析基地址。 – user364825 2010-06-23 19:49:18

+0

@ User364825:我的理解是,您需要在您的端点中拥有一个**完整的**地址,或者如果您想使用像“/ tcp”这样的相对地址,您必须**拥有一个基地址 – 2010-06-24 05:00:56

相关问题