【问题标题】:Should I use localhost in the endpoint address of a WCF service?我应该在 WCF 服务的端点地址中使用 localhost 吗?
【发布时间】:2014-10-16 23:56:59
【问题描述】:

如果我在 IIS 中托管一个公开可用的 WCF Web 服务,我应该如何配置端点地址?我想我可以使用:

<endpoint address="http://localhost/MyService" ... />

<endpoint address="http://example.com/MyService" ... />

在这两种情况下,另一台机器上的客户端都必须使用第二个选项来绑定客户端。

如果我使用 Visual Studio 创建客户端,两个服务器绑定似乎都可以正常工作。但是,我认为我在 Powershell 中使用 new-webserviceproxy 时遇到了问题。

我在服务器上使用哪一个有关系吗?

【问题讨论】:

    标签: web-services wcf iis


    【解决方案1】:

    MSDN: Specifying an Endpoint Address:

    您必须使用IIS 托管服务端点的相对端点地址。提供完全限定的端点地址可能会导致服务部署出错。如需更多信息,请参阅Deploying an Internet Information Services-Hosted WCF Service

    从那个链接:

    在 IIS 中托管时,端点地址始终被视为相对于代表服务的 .svc 文件的地址。例如,如果 WCF 服务的基地址是 http://localhost/Application1/MyService.svc,并具有以下终结点配置。

    <endpoint address="anotherEndpoint" .../>
    

    这提供了一个可以通过http://localhost/Application1/MyService.svc/anotherEndpoint 到达的端点

    【讨论】:

    • 这是我在文档中遗漏的一个很好的观点。我使用自托管服务的配置作为我的起点。如果在 IIS 中使用绝对 URL,我希望 WCF 会抛出错误。
    猜你喜欢
    • 2013-09-14
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多