1

我也在学习 WCF,并且是 Web 服务的新手,并且有一个非常基本的问题。请纵容我!我正在使用的书中的示例(Learning WCF)创建了一个 ServiceHost 实例,指定了服务的基地址(new Uri("http://localhost:8000/HelloIndigo)),我猜这是类的位置实现服务的库。然后使用最后一个参数调用 AddServiceEndpoint(),相对地址,给出为“HelloIndigoService”。 后者只不过是实际的类的名称(将在库中找到)实现服务合同?(有问题的类确实有这个名字。)然而,这个论点被称为“地址”,这让我很困惑。请帮忙。

4

1 回答 1

3

如果您是自托管,则可以:

  • 端点中完整的、明确的端点地址,例如

    http://yourServer:8888/YourService/SomeMethodName
    

    所以你的端点定义了一个完整的 HTTP 地址

或者:

  • 您可以在服务上定义一个基地址,该地址是该服务所有端点的基础,然后端点本身只定义从那里开始的相对地址。

因此,在您的情况下,基地址是http://localhost:8000/HelloIndigo- 所以所有服务端点都将在该地址“下方”。

端点定义了 的相对地址HelloIndigoService因此将这两个放在一起,最后的完整地址将是:

  http://localhost:8000/HelloIndigo/HelloIndigoService

这仅适用于自托管(当您有一个创建ServiceHost类并打开它以供使用的主机应用程序时)。

当您使用 IIS 托管您的服务时,不使用/不解释基地址 - 相反,*.svc文件所在的虚拟目录(在 IIS 中)定义了您的服务端点的地址。

于 2011-12-07T05:50:15.267 回答