Silverlight与WCF之间的通信(5)silverlight应用和wcf服务的发布方法

上一篇博文中有朋友问到关于silverlight程序发布的问题,上一篇写的是silverlight访问host在console上的wcf,其实关于wcf和silverlihgt通信的问题有好几种方式,这里列举了一下

  • 客户端和服务端采用http协议通信(分两种,同域或不同域)
  • 客户端和服务端采用tcp协议通信(分两种,服务端在IIS上,服务端不在IIS上《控制台、windows服务、winform等等》)

由于方式众多,这里仅就常用的方式进行说明

1,silverlight和wcf在同一个域中(http/tcp协议均可)

这是最简单的方式,如下图,

image image image

wcf是直接以寄宿在IIS中依靠IIS的生命周期管理服务的,所以这种模式,只要将WcfTcpSl.Web发布即可,其中wcfSerivce.svc可独立提供服务,WcfTcpslTestPage.aspx提供silverlight的载入。

2 ,silverlight和wcf不在同一个域中(http/tcp协议均可)

通常我们为了更好的维护代码并保持代码结构的清晰,会将WCF服务独立出来,成为单独的project,即web和wcf服务属于不同的应用程序,这时候就需要在web中引入策略文件了,因为silverlight跨域访问时需要指定的端口进行验证。

image image

与第一种不同的是

  • 需要在web下加一个clientaccesspolicy.xml策略文件
  • 发布时需要两个虚拟目录,各自独立的应用程序域。

将web和wcf发布在两个不同的虚拟目录中

image

3,silverlight在IIS下,WCF服务寄宿在控制台上,(tcp协议进行通信)

这种模式呢,我理解可能会用到数据流量比较大或者对实时通信要求比较高的情况下,需要进行tcp连接时使用的。这个模式呢,由于silverlight4和wcf4之间的跨域通信有所改进,换在了80端口,所以只需要在IIS根目录下面一个跨域文件clientaccesspolicy.xml即可,就是说你要保证 silverlight所访问的主机http://localhost:80/clientaccesspolicy.xml这个文件能够找到。发布时可以先将host在console上的服务放到一个相对稳定的目录,运行即可,然后将silverlight的web发布到虚拟目录即可访问。

image image image

wcf服务的寄宿方式有多种选择,所以服务的部署方式也会有不同的选择, silverlight也有out of brower的形式,灵活的选择这些方式将会给我们的程序带来良好的体验。

下一篇,将会尝试使用单工及双工的形式来进行视频流的传输。

转载于:https://www.cnblogs.com/wengyuli/archive/2010/07/23/silverlight-wcf-publish.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

常用函数(字符和字符串)

Pascal常用的字符处理标准函数有5个 (1)ord(ch) 求字符ch对应的ASCII代码值;如 ord (A)结果为65,ord(true)结果为1,ord(false)结果为0(2)chr(x) 求x(x为1…255…

python搜索文件内容_python实现搜索文本文件内容

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云文件存储NAS是一个可共享访问&#xf…

html单张图片效果,jquery+html5实现单张图片上传预览

js:if (window.File && window.FileReader && window.FileList && window.Blob){//Blob是计算机界通用术语之一,全称写作:BLOB (binary large object),表示二进制大对象。//全部支持function handleFileS…

通向成功的23个方法

1.设立大目标和小目标。总要保持向前看,但不要忘记你今天的成绩。 2.每天都设立新的目标。因为成功是一个过程,所以要确保总是有新的事情要完成。 3.逐一完成每周的事情。将时间表分成容易做到的几块,并且单独完成每一块。 4.每天至少完成一件…

科讯SQL标签调用文章技巧

http://qdh68.blog.163.com/blog/static/13756126201241584835332/转载于:https://www.cnblogs.com/zhangzhu/archive/2013/03/31/2991754.html

小程序引用其他页面js_来聊聊小程序页面之间如何通信

小程序页面之间如何通信?首先将通信的模型列举出来, 分为以下几种兄弟页面间通信父路径页面向子路径页面通信子路径页面向父路径页面通信通信的方式localStorage 本地存储globalData 全局对象eventBus 发布订阅PageModel 缓存整个pageModel至globalDataLocalStorage利用onShow…

html meta页面自适应,【转载·收藏】 html5手机网站自适应需要加的meta标签

webapp开发初期,会碰到在pc端开发好的页面在移动端显示过大的问题,这里需要在html head中加入meta标签来控制缩放下面是对于这个标签的具体说明:viewport 语法介绍:content包含有以下几个属性:height [pixel_value | device-height] ,width [pixel_value | device-w…

用碧海潮声制作的宋体(雅黑宋体)替换Windows7原生的火柴棍式的宋体

第一眼见到Windows7的时候,界面真的非常漂亮,但是当查看文件属性的时候,里面宋体出奇的难看,网上有很多在XP里替换宋体的方法,但是到了Windows7里就不那么好用了,经过多次查找相关方法,终于使用…

最近2个月的生活

最近2个月,心情动荡不定。时而快乐,时而悲伤,时而激动,时而淡定。最近的故事还是比较多的,就按编号来分别描述吧.1.周五,公司举办了2012年年会。 本次年会,是 帅哥和美女展示身材和才艺的机会。…

json动画_three.js动画(四)

ThreeJS的动画系列分为:基础动画、相机控制、变形动画、用骨骼和蒙皮制作动画以及使用外部模型创建动画。用骨骼和蒙皮制作动画用骨骼来做动画时,移动一下骨骼,Three.js必须决定如何相应地迁移附着在骨骼上的皮肤,一起来看吧~~~举…

如何做PHD (1)

做PHD两年了,经验不多,从朋友、导师、教授、名人得到的做PHD的经验却很宝贵,为了不让自己忘记,特此记录,希望对各位已经是PHD或即将成为PHD的朋友有所帮助。 1.多读文章 做PHD与做硕士不一样,计算机的硕士…

sqlite3x library

sqlite3x - C wrapper of SQLite API. http://sourceforge.net/projects/int64/files/SQLite3%20C%2B%2B%20Wrapper/ https://github.com/ptrv/sqlite3x http://wanderinghorse.net/computing/sqlite/ Appendix http://www.sqlite.org/转载于:https://www.cnblogs.com/androidm…

html5监听动画结束,js判断css动画是否完成 animation,transition

气死了,发现这些鸟人讲事情都讲一半,害死初学者。css动画有两种,animation,transition,所以分开来讲。1、animation:css定义 #left1{}html定义:安全那么我们就用#left1来获取元素:/* 监听变换事…

[算法]不用第三个数交换2个数的位置

int a 10; int b 20; 第一种方法: a a b; b a - b; a a - b; 第二种方法: a a ^ b; (^ 语言中是异或的意思,同为0 异为1 1 ^ 1 0, 0 ^ 0 0, 1 ^ 0 1) b a ^ b; a a ^ b; 第三种方法 (这种方法容易越界&#xff09…

四十之后才明白

四十以后才明白:好朋友是应该相互欣赏的,而不是相互利用的。 四十以后才明白:饭应一口一口吃,事要一点一点做。没有一蹴而就的事情,所以就不应该疲于奔命。中年,应该活得从容。 四十以后才明白&#xff1a…

session很快失效_一口气说出 4 种分布式一致性 Session 实现方式,面试杠杠的~

前言公司有一个 Web 管理系统,使用 Tomcat 进行部署。由于是后台管理系统,所有的网页都需要登录授权之后才能进行相应的操作。起初这个系统的用的人也不多,为了节省资源,这个系统仅仅只是单机部署。后来随着用的人越来越多&#x…

定义动画名字html,CSS3 animation-name属性怎么用?

css3 animation-name属性是用来检索或设置对象所应用的动画名称,必须与keyframes配合使用,因为动画名称由keyframes定义 ;如果有多个属性值,可以用逗号进行分隔。css3 animation-name属性作用:animation-name 属性为 k…

转: linux 命令行设置网络

原文:http://www.cnitblog.com/201/archive/2009/08/20/60887.html 熟悉使用ifconfig 会非常方便。  ifconfig eth0 新ip 然后编辑/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip 一、修改IP地址 [aeolusdb1 network-scripts]$ vi ifcfg-eth0 DEVIC…

线程中如何使用对象_多线程中如何使用gdb精确定位死锁问题

在多线程开发过程中很多人应该都会遇到死锁问题,死锁问题也是面试过程中经常被问到的问题,这里介绍在c中如何使用gdbpython脚本调试死锁问题,以及如何在程序运行过程中检测死锁。首先介绍什么是死锁,看下维基百科中的定义&#xf…

TypeScript Generics(泛型)

软件工程的一个主要部分就是构建组件,构建的组件不仅需要具有明确的定义和统一的接口,同时也需要组件可复用。支持现有的数据类型和将来添加的数据类型的组件为大型软件系统的开发过程提供很好的灵活性。 在C#和Java中,可以使用"泛型&qu…