WCF服务配置信息中有许多东西需要我们去进行适当的修改或者设置,才能实现一些功能。在这里我们将会了解到有关WCF服务配置信息的一些动态设置方法。#t#

成都创新互联公司制作网站网页找三站合一网站制作公司,专注于网页设计,网站设计制作、成都网站制作,网站设计,企业网站搭建,网站开发,建网站业务,680元做网站,已为近千家服务,成都创新互联公司网站建设将一如既往的为我们的客户提供最优质的网站建设、网络营销推广服务!
在Silverlight中是使用ServiceReferences.ClientConfig文件来保存和查看WCF服务配置信息的,而ServiceReferences.ClientConfig又是包含在.xap文件中的。
这样就导致如果您的Silverlight工程有用到WCF服务就需要在每次部署到不同网站的时候重新更改下WCF的配置并重新编译。而且这个重新配置的过程又往往可能需要Visual Studio 2008的帮助来重新链接WCF服务。
而且对于有些部署的服务器就可能非常不现实了(有的服务器要求系统干净,不允许安装其他软件)。
那么怎么办呢?
WCF服务配置信息解决方案:
部署时由于WCF Service的部署地址不同,将需要我们重新索引,并编译这个程序,非常繁琐
你可以采用如下的动态配置的方式一举解决这个问题:
删除ServiceReferences.ClientConfig文件,并在Silverlight 工程下添加一个类文件(Class File)ServiceUtil.cs如下
- public static ProductServiceClient GetDynamicClient()
 - {
 - BasicHttpBinding binding = new BasicHttpBinding(
 - Application.Current.Host.Source.Scheme.
 
Equals("https", StringComparison.
InvariantCultureIgnoreCase)- ? BasicHttpSecurityMode.Transport :
 
BasicHttpSecurityMode.None);- binding.MaxReceivedMessageSize = int.MaxValue;
 - binding.MaxBufferSize = int.MaxValue;
 - return new ProductServiceClient(binding,
 
new EndpointAddress(- new Uri(Application.Current.Host.Source,
 
"../ProductService.svc")));- }
 
上述就是通过动态的形式获取得到ProductService了
修改Page.xaml.cs文件如下
- void Page_Loaded(object sender,
 
RoutedEventArgs e)- {
 - ProductServiceClient client =
 
ServiceUtil.GetDynamicClient();
//动态获取ProductServiceClient- this.Cursor = Cursors.Hand;
 - client.RetreiveDataAsync();
 - client.RetreiveDataCompleted +=
 
(sender2, e2) =>- {
 - if (e2.Cancelled == false &&
 
e2.Error == null)- {
 - ObservableCollection
 
products = e2.Result;- this.ProductLBCtl.ItemsSource = products;
 - this.Cursor = Cursors.Arrow;
 - }
 - };
 - }
 
这样大家就可以在不用修改的情况下非常便捷的将WCF服务配置信息部署到IIS或者Apache上了。
Copyright © 2009-2022 www.wtcwzsj.com 青羊区广皓图文设计工作室(个体工商户) 版权所有 蜀ICP备19037934号