当已提供基址时,WCF服务端点的相对地址

时间:2011-12-07 05:10:26

标签: wcf service endpoints

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

1 个答案:

答案 0 :(得分:3)

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

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

    http://yourServer:8888/YourService/SomeMethodName
    

    因此,您的端点定义了一个完整的HTTP地址

OR:

  • 您可以在服务上定义基本地址,该服务是该服务的所有端点的基础,然后端点本身仅定义相关地址。

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

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

  http://localhost:8000/HelloIndigo/HelloIndigoService

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

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