我也在学习WCF,并且是Web Services的新手,并且有一个非常基本的问题。请放纵我吧!我正在使用的书(学习WCF)中的示例创建了一个ServiceHost实例,指定了服务的基地址(new Uri(“http:// localhost:8000 / HelloIndigo)),我想这是该类的位置实现服务的库。然后调用AddServiceEndpoint()完成最后的参数,相对地址,给出为“HelloIndigoService”。后者只不过是类的名称(在库中找到) )实际上实现了服务合同?(有问题的类具有这个名称。)然而,这个论点被称为“地址”,这让我感到非常困惑。请帮忙。
答案 0 :(得分:3)
如果您是自托管,则可以选择:
完整,明确的端点地址,例如
http://yourServer:8888/YourService/SomeMethodName
因此,您的端点定义了一个完整的HTTP地址
OR:
因此,在您的情况下,基地址为http://localhost:8000/HelloIndigo
- 因此所有服务端点都将位于该地址的“下方”。
端点定义HelloIndigoService
的相对地址,因此这两个被放在一起,最后的完整地址将是:
http://localhost:8000/HelloIndigo/HelloIndigoService
仅适用于自托管(当您拥有一个创建ServiceHost
类的主机应用程序并打开它以供使用时)。
使用IIS托管服务时,不使用/不解释基址 - 而是存在*.svc
文件的虚拟目录(在IIS中)定义服务端点的地址。