我创建了一个带有两个端点的服务,一个用于netHttpBinding,另一个用于basicHttpBinding。
我能够"添加服务参考"来自客户端解决方案,使用来自同一台机器的两个地址(net.tcp://localhost:8080/Whatever or http://localhost:8000/ProductsService/Service.svc
)
但是在尝试"发现"来自网络上其他计算机的服务,我可以使用net.tcp://localhost:8080/Whatever
地址但不能使用http://localhost:8000/ProductsService/Service.svc
地址来执行此操作
当我使用basicHttp时,我得到错误(http):
我尝试运行netsh(以管理员身份运行Comand Prompt):
netsh http add urlacl url=http://+:8000/ user=<Machine Name>\Username
我收到以下错误:
Url reservation add failed, Error: 103
Cannot create a file when that file already exists
我该怎样做才能发现&#34;发现&#34; (当然使用Go)来自另一台机器的服务使用basicHttp端点?
我使用ServiceHost类型来&#34;发布&#34;服务以及定义服务的解决方案的ServiceModel节点(App.config)是:
答案 0 :(得分:0)
您正尝试从其服务地址发现该服务 - 您应该尝试从其mex
地址发现该服务。
根据您的配置,您应该能够在以下位置找到该服务:
http://machineName:8000/ProductsService/mex
甚至
http://machineName:8000/ProductsService
修改强>
防火墙可能会阻止入站连接。在服务主机上添加防火墙入站规则以允许端口8000上的tcp连接。