我创建了wcf服务和客户端。 wcf服务和客户端都是使用c#实现的。我在iis和windows服务中都托管了这个wcf服务。当我托管它时,我需要在web.config文件或设计时指定基址。是否可以在运行时指定基址。如何在运行时提供它?
像这样我可以在客户端更改服务引用地址。怎么做c#?答案 0 :(得分:4)
如果您正在使用自托管,那么您可以在ServiceHost
类的构造函数中指定基址:
Uri baseAddress = new Uri("http://........");
ServiceHost host = new ServiceHost(typeof(YourServiceClass), baseAddress);
使用IIS,事情变得有点棘手....您可能能够提供自定义工厂来创建服务主机 - 但这看起来像是一大堆工作。此外,使用IIS,您的*.svc
文件所在的虚拟目录实际上决定了您的服务的URL - 因此提供基本地址确实没有多大价值。