文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>SILVERLIGHT访问WCF时通过WEB.CONFIG 指定服务器地址

SILVERLIGHT访问WCF时通过WEB.CONFIG 指定服务器地址

时间:2011-05-13  来源:天堂的旁边

在部署SILVERLIGHT站点时,需要能够修改WCF服务的地址,在网上搜索了多篇文章,程序改造成功。过程总结如下

1.在WEB.CONFIG中添加配置节点

  <appSettings>
<add key ="WCFServiceAddress" value ="http://192.168.100.107/ProspectTaskWcfService/SilverLight_Service.svc"/>
</appSettings >

2.在host Silverilght 的aspx页面中添加<param name="initParams" vaule=""/>,添加完成后,如下所示:

我们要是想给SILVERLIGHT传点别的什么东西,也可以用这种方式

<param name="source" value="ClientBin/Jurassic.ProspectTask.Web.Control.WorkPlan.xap"/>
<param name="onerror" value="onSilverlightError" />
<param name="background" value="white" />
<param name="minRuntimeVersion" value="3.0.40624.0" />
<param name="autoUpgrade" value="true" />
<param name="initParams" value="wcfServiceUrl=<%=ConfigurationManager.AppSettings["WCFServiceAddress"] %> " />

3.在SilverLight工程下App.xmal.cs中,添加属性CustomConfigurations,并修改事件Application_Startup。如下所示

        private  IDictionary<string, string> _customConfigurations;
        public IDictionary<string, string> CustomConfigurations
        {
            get { return _customConfigurations; }
        }

        public App()
        {
            this.Startup += this.Application_Startup;
            this.Exit += this.Application_Exit;
            this.UnhandledException += this.Application_UnhandledException;

            InitializeComponent();
        }

        private void Application_Startup(object sender, StartupEventArgs e)
        {
            _customConfigurations = e.InitParams;
            this.RootVisual = new MainPage();
            
        }

4.在SilverLight工程中添加一个新CLASS,用于返回一个连接的实例

public class WcfService
    {
        public WcfService()
        {
        }

        public SilverService.SilverLightClient GetWCF()
        {
            App application = (App)Application.Current;
            string url = application.CustomConfigurations["wcfServiceUrl"];

            BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None);
            binding.MaxReceivedMessageSize = int.MaxValue;
            binding.MaxBufferSize = int.MaxValue;
            //
            SilverService.SilverLightClient client = new SilverService.SilverLightClient(binding, new EndpointAddress(new Uri(url)));
            return client;
        }
    }

在我们需要调用WCF服务时,就可通过上边的方法获取实例了

            WcfService wcf = new WcfService();
            SilverService.SilverLightClient client = wcf.GetWCF();
            client.UpdatePlanCompleted += new EventHandler<System.ComponentModel.AsyncCompletedEventArgs>(OnCompleted);
            client.UpdatePlanAsync(_planEntity);
相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载