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

简介:

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

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

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

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

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

 

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

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

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

 

与第一种不同的是

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

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

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

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

 

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

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



     本文转自wengyuli 51CTO博客,原文链接:http://blog.51cto.com/wengyuli/587207,如需转载请自行联系原作者





相关文章
|
前端开发
WCF更新服务引用报错的原因之一
WCF更新服务引用报错的原因之一
|
C# 数据安全/隐私保护
c#如何创建WCF服务到发布(SqlServer版已经验证)
c#如何创建WCF服务到发布(SqlServer版已经验证)
72 0
|
安全 数据库连接 数据库
WCF服务创建到发布(SqlServer版)
在本示例开始之前,让我们先来了解一下什么是wcf? wcf有哪些特点? wcf是一个面向服务编程的综合分层架构。该架构的项层为服务模型层。 使用户用最少的时间和精力建立自己的软件产品和外界通信的模型。它使得开发者能够建立一个跨平台的安全、可信赖、事务性的解决方案。且能与已有系统兼容写作。 简单概括就是:一组数据通信的应用程序开发接口。
105 0
|
XML 网络协议 IDE
WCF基础教程(三)——WCF通信过程及配置文件解析
WCF基础教程(三)——WCF通信过程及配置文件解析
365 0
WCF基础教程(三)——WCF通信过程及配置文件解析
|
C++
WCF基础教程(二)——解析iis8和iis8.5+VS2013发布wcf服务问题
WCF基础教程(二)——解析iis8和iis8.5+VS2013发布wcf服务问题
138 0
WCF基础教程(二)——解析iis8和iis8.5+VS2013发布wcf服务问题
WCF使用纯代码的方式进行服务寄宿
服务寄宿的目的是为了开启一个进程,为WCF服务提供一个运行的环境。通过为服务添加一个或者多个终结点,使之暴露给潜在的服务消费,服务消费者通过匹配的终结点对该服务进行调用,除去上面的两种寄宿方式,还可以以纯代码的方式实现服务的寄宿工作。
890 0
|
JavaScript
|
容器
使用MEF构建可扩展的Silverlight应用
“托管扩展性框架(Managed Extensibility Framework,简称MEF),是微软.NET框架下为提高应用和组件复用程度而推出的,用于使组件能够最大化的重用。使用MEF能够使静态编译的.NET应用程序转换为动态组合,这将是创建可扩展应用、可扩展框架和应用扩展的好途径。
740 0

热门文章

最新文章