我已经创建了 wcf 服务和客户端。wcf 服务和客户端都是使用 c# 实现的。我已经在 iis 和 windows 服务中托管了这个 wcf 服务。当我托管它时,我需要在 web.config 文件或设计时指定基地址。是否可以在运行时指定基地址。如何在运行时提供它?
像这样我可以在客户端更改服务参考地址吗?如何在 c# 中做到这一点?
我已经创建了 wcf 服务和客户端。wcf 服务和客户端都是使用 c# 实现的。我已经在 iis 和 windows 服务中托管了这个 wcf 服务。当我托管它时,我需要在 web.config 文件或设计时指定基地址。是否可以在运行时指定基地址。如何在运行时提供它?
像这样我可以在客户端更改服务参考地址吗?如何在 c# 中做到这一点?
如果您使用自托管,则可以在ServiceHost
类的构造函数中指定基地址:
Uri baseAddress = new Uri("http://........");
ServiceHost host = new ServiceHost(typeof(YourServiceClass), baseAddress);
有了 IIS,事情就变得有点棘手了……您也许可以提供一个自定义工厂来创建您的服务主机——但这似乎需要做很多工作。此外,对于 IIS,您的*.svc
文件所在的虚拟目录实际上决定了您的服务的 URL——因此提供基地址确实没有多大价值。