在localhost上运行的WCF服务:4040

时间:2009-09-11 10:24:28

标签: wcf hosting

我希望这是一个快速的问题。我在IIS端口4040上运行了WCF服务。我已将以下标头添加到此服务

4040(非负载均衡域)

4040 localhost

所以在本地我可以将此服务引用为http://localhost:4040/service.svc,也可以引用完全限定的域名。对于这台机器上的所有服务都没问题,我可以通过localhost引用所有内容:4040

当我尝试从其他服务器访问它时出现问题(因为我们有其他需要使用该服务的应用程序)

我收到404错误,并且想知道该服务是否默认为在localhost环回(127.0.0.1)上公开,因此无法访问。

端点定义如下:

 <service behaviorConfiguration="ClaimChaseBehavior"
          name="Modules.EClaims.ClaimChase">
    <endpoint address=""
              binding="basicHttpBinding"
              contract="Domain.EClaims.DataInterfaces.IClaimChase" />
    <endpoint address="mex" binding="mexHttpBinding" 
              contract="IMetadataExchange" />
 </service>

注意我没有定义地址。这样做的原因是允许我们有一个共同的配置文件(我们试图绕过定义机器域/地址,因此多个配置)

是否有办法在不定义实际域名的情况下将WCF默认为机器IP而不是环回连接器

希望这是有道理的

此致

理查德

2 个答案:

答案 0 :(得分:1)

当您在IIS中托管服务时,服务的地址由* .svc文件的位置定义和控制 - 您无法通过在服务端点上定义基地址或显式地址来覆盖它。

服务地址始终为:

http://machinename/VirtualDirectory/YourService.svc

马克

答案 1 :(得分:0)

检查您的网络配置。你有没有说服务的地址是localhost?

编辑:

第二个想法,它看起来像防火墙问题,端口4040被本地防火墙阻止了吗?