Silverlight与WCF之间的通信(5)silverlight应用和wcf服务的发布方法
上一篇博文中有朋友問(wèn)到關(guān)于silverlight程序發(fā)布的問(wèn)題,上一篇寫(xiě)的是silverlight訪問(wèn)host在console上的wcf,其實(shí)關(guān)于wcf和silverlihgt通信的問(wèn)題有好幾種方式,這里列舉了一下
- 客戶(hù)端和服務(wù)端采用http協(xié)議通信(分兩種,同域或不同域)
- 客戶(hù)端和服務(wù)端采用tcp協(xié)議通信(分兩種,服務(wù)端在IIS上,服務(wù)端不在IIS上《控制臺(tái)、windows服務(wù)、winform等等》)
由于方式眾多,這里僅就常用的方式進(jìn)行說(shuō)明
1,silverlight和wcf在同一個(gè)域中(http/tcp協(xié)議均可)
這是最簡(jiǎn)單的方式,如下圖,
wcf是直接以寄宿在IIS中依靠IIS的生命周期管理服務(wù)的,所以這種模式,只要將WcfTcpSl.Web發(fā)布即可,其中wcfSerivce.svc可獨(dú)立提供服務(wù),WcfTcpslTestPage.aspx提供silverlight的載入。
2 ,silverlight和wcf不在同一個(gè)域中(http/tcp協(xié)議均可)
通常我們?yōu)榱烁玫木S護(hù)代碼并保持代碼結(jié)構(gòu)的清晰,會(huì)將WCF服務(wù)獨(dú)立出來(lái),成為單獨(dú)的project,即web和wcf服務(wù)屬于不同的應(yīng)用程序,這時(shí)候就需要在web中引入策略文件了,因?yàn)閟ilverlight跨域訪問(wèn)時(shí)需要指定的端口進(jìn)行驗(yàn)證。
與第一種不同的是
- 需要在web下加一個(gè)clientaccesspolicy.xml策略文件
- 發(fā)布時(shí)需要兩個(gè)虛擬目錄,各自獨(dú)立的應(yīng)用程序域。
將web和wcf發(fā)布在兩個(gè)不同的虛擬目錄中
3,silverlight在IIS下,WCF服務(wù)寄宿在控制臺(tái)上,(tcp協(xié)議進(jìn)行通信)
這種模式呢,我理解可能會(huì)用到數(shù)據(jù)流量比較大或者對(duì)實(shí)時(shí)通信要求比較高的情況下,需要進(jìn)行tcp連接時(shí)使用的。這個(gè)模式呢,由于silverlight4和wcf4之間的跨域通信有所改進(jìn),換在了80端口,所以只需要在IIS根目錄下面一個(gè)跨域文件clientaccesspolicy.xml即可,就是說(shuō)你要保證 silverlight所訪問(wèn)的主機(jī)http://localhost:80/clientaccesspolicy.xml這個(gè)文件能夠找到。發(fā)布時(shí)可以先將host在console上的服務(wù)放到一個(gè)相對(duì)穩(wěn)定的目錄,運(yùn)行即可,然后將silverlight的web發(fā)布到虛擬目錄即可訪問(wèn)。
wcf服務(wù)的寄宿方式有多種選擇,所以服務(wù)的部署方式也會(huì)有不同的選擇, silverlight也有out of brower的形式,靈活的選擇這些方式將會(huì)給我們的程序帶來(lái)良好的體驗(yàn)。
下一篇,將會(huì)嘗試使用單工及雙工的形式來(lái)進(jìn)行視頻流的傳輸。
轉(zhuǎn)載于:https://www.cnblogs.com/wengyuli/archive/2010/07/23/silverlight-wcf-publish.html
總結(jié)
以上是生活随笔為你收集整理的Silverlight与WCF之间的通信(5)silverlight应用和wcf服务的发布方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: .NET Framework源码研究系列
- 下一篇: 通向成功的23个方法