不能通过本地网络从其他计算机访问使用basicHttpBinding并在IIS外部托管的WCF服务

时间:2014-03-28 01:56:36

标签: web-services wcf

我创建了一个带有两个端点的服务,一个用于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):

enter image description here

我尝试运行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)是:

enter image description here

1 个答案:

答案 0 :(得分:0)

您正尝试从其服务地址发现该服务 - 您应该尝试从其mex地址发现该服务。

根据您的配置,您应该能够在以下位置找到该服务:

http://machineName:8000/ProductsService/mex

甚至

http://machineName:8000/ProductsService

修改

防火墙可能会阻止入站连接。在服务主机上添加防火墙入站规则以允许端口8000上的tcp连接。