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