在运行时动态添加wcf服务的基地址?

时间:2013-12-03 06:05:12

标签: c# wcf base-address

我创建了wcf服务和客户端。 wcf服务和客户端都是使用c#实现的。我在iis和windows服务中都托管了这个wcf服务。当我托管它时,我需要在web.config文件或设计时指定基址。是否可以在运行时指定基址。如何在运行时提供它?

像这样我可以在客户端更改服务引用地址。怎么做c#?

1 个答案:

答案 0 :(得分:4)

如果您正在使用自托管,那么您可以在ServiceHost类的构造函数中指定基址:

Uri baseAddress = new Uri("http://........");
ServiceHost host = new ServiceHost(typeof(YourServiceClass), baseAddress);

使用IIS,事情变得有点棘手....您可能能够提供自定义工厂来创建服务主机 - 但这看起来像是一大堆工作。此外,使用IIS,您的*.svc文件所在的虚拟目录实际上决定了您的服务的URL - 因此提供基本地址确实没有多大价值。