1、WCF客户端动态设置WCF服务器主机WCF客户端动态设置WCF服务器主机的地址的方法参考,可以连接多个相同WCF主机的方法 最近做一个项目,需要在客户端灵活配置连接到哪个服务器的功能,例如客户端是一个,现在想连接A服务器就连A服务器,想连接B服务器就连接B服务器,当然不需要手动修改配置文件,直接通过程序来实现WCF目标主机的配置功能。 参考核心代码如下:/-/AllRightsReserved,Copyright(C)2011,HairihanTECH,Ltd./-usingSystem.ServiceModel;namespaceDotNet.WCFClientusingDotNet.ISe
2、rvice;usingDotNet.Utilities;/ServiceFactory/本地服务的具体实现接口/修改纪录/2011.07.03版本:2.0JiRiGaLa可以动态指定服务器地址的调用方法。/2009.09.20版本:1.0JiRiGaLa创建。/版本:2.0/JiRiGaLa/2011.07.03/publicclassServiceFactory:IServiceFactoryprivatestringhost=string.Empty;/主机地址/Host=192.168.0.122;/publicstringHostgetreturnhost;sethost=value;
3、privateintport=0;/端口号/publicintPortgetreturnport;setport=value;publicServiceFactory()/初始化服务/publicvoidInitService()/动态设定WCF主机地址端口的方法/主机地址/主机地址publicvirtualEndpointAddressGetHotsUrl(EndpointAddressaddress)/若当前配置都是空的,就不用生成新的URL了。if(string.IsNullOrEmpty(Host)&(Port=0)returnaddress;/判断当前配置的情况stringendpo
4、intAddress=string.Empty;if(string.IsNullOrEmpty(Host)Host=address.Uri.Host;if(Port=0)Port=address.Uri.Port;endpointAddress=address.Uri.Scheme+:/+Host+:+Port.ToString()+address.Uri.LocalPath;address=newEndpointAddress(endpointAddress);returnaddress;publicvirtualISequenceServiceCreateSequenceService()
5、ChannelFactorychannelFactory=newChannelFactory(DotNet.Service.SequenceService);channelFactory.Endpoint.Address=GetHotsUrl(channelFactory.Endpoint.Address);/加强安全验证防止未授权匿名调用channelFactory.Credentials.UserName.UserName=BaseSystemInfo.ServiceUserName;channelFactory.Credentials.UserName.Password=BaseSystemInfo.ServicePassword;ISequenceServiceproxy=channelFactory.CreateChannel();returnproxy;复制代码 配套的配置文件参考如下:复制代码
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2