- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
....
WCF客户端动向设置WCF服务器主机的地点的方法参照,能够连
接多个相同WCF主机的方法
近来做一个项目,需要在客户端灵巧配置连结到哪个服务器的功能,比方客户端是一个,现
在想连结A服务器就连A服务器,想连结B服务器就连结B服务器,自然不需要手动改正配
置文件,直接经过程序来实现WCF目标主机的配置功能。
参核查心代码以下:
//--------------------------------------------------------------------
//AllRightsReserved,Copyright(C)2011,HairihanTECH,Ltd.
//--------------------------------------------------------------------
usingSystem.ServiceModel;
namespaceDotNet.WCFClient
{
usingDotNet.IService;
usingDotNet.Utilities;
///summary///ServiceFactory
当地服务的详细实现接口
//////改正纪录
//////版本:2.0JiRiGaLa能够动
态指定服务器地点的调用方法。
1/11
....
///版本:1.0JiRiGaLa创立。
//////版本:2.0
//////author///nameJiRiGaLa/name
///date2011.07.03/date////author
/summary
publicclassServiceFactory:IServiceFactory
{
privatestringhost=string.Empty;
///summary///主机地点
Host=192.168.0.122;
/summary
publicstringHost
{
get{
returnhost;
}
set{
host=value;
}
}
privateintport=0;
2/11
....
///summary///端口号
/summary
publicintPort
{
get{
returnport;
}
set{
port=value;
}
}
publicServiceFactory()
{
}
///summary///初始化服务
/summary
publicvoidInitService()
{
}
3/11
....
///summary///动向设定WCF主机地点端口的方
法
////summary///paramname=address主机
地点/param///returns主机地点/returns
publicvirtualEndpointAddressGetHotsUrl(EndpointAddressa
ddress)
{
//若目前配置都是空的,就不用生成新的URL了。
if(string.IsNullOrEmpty(Host)(Port==0))
{
returnaddress;
}
//判断目前配置的情况
stringendpointAddress=string.Empty;
if(string.IsNullOrEmpty(Host))
{
Host=address.Uri.Host;
}
if(Port==0)
{
Port=address.Uri.Port;
}
4/11
....
endpointAddress+://+Ho
st+:+Port.ToString()+address.Uri.LocalPath;
address=newEndpointAddress(endpointAddress);
returnaddress;
}
publicvirtualISequenceServiceCreateSequenceService()
{
ChannelFactoryISequenceServicechannelFactory=ne
wChannelFactoryISequenceService(DotNet.Service.SequenceService);
=GetHotsUrl(channelF
actory.Endpoint.Address);
加强安全考证防范未授权匿名调用
=BaseSy
stemInfo.ServiceUserName;
=BaseSy
stemInfo.ServicePassword;
ISequenceServiceproxy=channelFactory.CreateChanne
l();
returnproxy;
}
5/11
....
}
}
}
复制代码
配套的配置文件参照以下:
?xmlvers
原创力文档


文档评论(0)