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的形式,靈活的選擇這些方式將會給我們的程序帶來良好的體驗。
下一篇,將會嘗試使用單工及雙工的形式來進行視頻流的傳輸。
轉載于:https://www.cnblogs.com/wengyuli/archive/2010/07/23/silverlight-wcf-publish.html
總結
以上是生活随笔為你收集整理的Silverlight与WCF之间的通信(5)silverlight应用和wcf服务的发布方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Framework源码研究系列
- 下一篇: 通向成功的23个方法