我希望这是一个快速的问题。我在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而不是环回连接器
希望这是有道理的
此致
理查德
答案 0 :(得分:1)
当您在IIS中托管服务时,服务的地址由* .svc文件的位置定义和控制 - 您无法通过在服务端点上定义基地址或显式地址来覆盖它。
服务地址始终为:
http://machinename/VirtualDirectory/YourService.svc
马克
答案 1 :(得分:0)
检查您的网络配置。你有没有说服务的地址是localhost?
编辑:
第二个想法,它看起来像防火墙问题,端口4040被本地防火墙阻止了吗?