【问题标题】:WCF service running on localhost:4040在 localhost:4040 上运行的 WCF 服务
【发布时间】:2009-09-11 19:00:45
【问题描述】:

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

4040(非负载平衡域)

4040 本地主机

因此,我可以在本地将此服务引用为 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 而不是环回连接器

希望这是有道理的

问候

理查德

【问题讨论】:

  • Richard:为了正确显示配置和代码部分,您需要突出显示这些行,然后单击工具栏中的“代码”按钮 (010 101),或按 Ctrl-K。反引号仅适用于单行的一小部分(不跨行)

标签: wcf hosting


【解决方案1】:

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

服务地址将始终为:

http://machinename/VirtualDirectory/YourService.svc

马克

【讨论】:

    【解决方案2】:

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

    编辑:

    再想,好像是防火墙的问题,4040端口是不是被本地防火墙屏蔽了?

    【讨论】:

    • 嗨 Shiraz 感谢您的评论,我的配置没有显示出来。如您所见,我没有在地址参数中定义任何内容。你建议我这样做吗?
    猜你喜欢
    • 2021-05-03
    • 2012-07-06
    • 2018-02-18
    • 1970-01-01
    • 1970-01-01
    • 2014-10-13
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    相关资源
    最近更新 更多