日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
在Silverlight應(yīng)用程序中調(diào)試WCF服務(wù)

【獨家特稿】在以前的Silverlight應(yīng)用程序中,我們都是通過給Web項目添加一個新的WCF服務(wù),并填充代碼的方式創(chuàng)建Windows通信基礎(chǔ)(WCF)服務(wù)的,這種方法導(dǎo)致我在測試和調(diào)試我的服務(wù)配置時遇到了許多問題,有沒有更好的方法來添加一個WCF服務(wù)?

創(chuàng)新互聯(lián)建站:2013年至今為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為上1000家公司企業(yè)提供了專業(yè)的網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)頁設(shè)計和網(wǎng)站推廣服務(wù), 按需搭建網(wǎng)站由設(shè)計師親自精心設(shè)計,設(shè)計的效果完全按照客戶的要求,并適當(dāng)?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。

創(chuàng)建WCF服務(wù)的方法很多,這里要介紹的方法會讓你解決問題變得更容易,它利用Visual Studio 2010中提供的輕量級WCF配置選項。

向Silverlight應(yīng)用程序添加一個服務(wù)最簡單的方法是,向Silverlight解決方案的Web應(yīng)用程序項目添加一個WCF服務(wù)項,當(dāng)你添加一個名為TestServiceCB的服務(wù)時,Visual Studio會用相同的服務(wù)定義創(chuàng)建一個接口。

 
 
 
 
  1. [ServiceContract]
  2. public interface ITestServiceCB
  3. {
  4.     [OperationContract]
  5.      void DoWork();
  6. }

此外,Visual Studio會添加一個TestServiceCB.svc文件,其內(nèi)容如下,它實現(xiàn)了服務(wù)接口:

 
 
 
 
  1. public class TestServiceCB : ITestServiceCB {
  2.       public void DoWork() {
  3.       }
  4. }

當(dāng)你選中TestServiceCB.svc,并從上下文菜單中選擇“在瀏覽器中查看”,瀏覽器會打開URL localhost:55778/TestServiceCB.svc,顯示關(guān)于服務(wù)的一些信息,注意URL中的端口55778,在你的環(huán)境中可能會有所不同。

這個解決方案只適合簡單的服務(wù),對于涉及到業(yè)務(wù)和數(shù)據(jù)訪問層的復(fù)雜服務(wù)可能需要集成和單元測試,使用不同的主機(jī)部署相同的服務(wù)也比Web應(yīng)用程序更困難,對于這些情況,圖2顯示的項目結(jié)構(gòu)可能會更好一點。

 
圖1 WCF服務(wù)的一個獨立服務(wù)庫,允許你以多種方式托管它們并協(xié)助測試你的配置,
這不是Visual Studio的默認(rèn)行為,但難度并不大

使用這種方法,所有用于實現(xiàn)服務(wù)的接口和類都被包含在一個單獨的服務(wù)庫項目里面,Web項目仍然托管服務(wù),根據(jù)需要調(diào)用服務(wù)庫中的類,創(chuàng)建一或多個測試項目直接測試服務(wù)庫中的類,從而減少出現(xiàn)問題的可能性,給你提供了一個繞過客戶端進(jìn)行調(diào)試的方法,在Silverlight和WCF世界中這一點特別重要,因為默認(rèn)情況下,服務(wù)返回的所有異常都只提供了很少甚至沒有提供診斷信息。

如果要創(chuàng)建這個結(jié)構(gòu),首先給你的Silverlight解決方案添加一個WCF服務(wù)庫,默認(rèn)情況下,Visual Studio會給你的服務(wù)庫項目添加一個名為IService1.cs的接口和名為Service1.cs的服務(wù)類,它們和你直接在Web應(yīng)用程序中添加WCF服務(wù)時創(chuàng)建的接口和代碼隱藏類相似,你應(yīng)該修改接口和服務(wù)類的名字,反映出你的服務(wù)名,作為一個例子,一個叫TestService的服務(wù)可能包含以下ITestService接口:

 
 
 
 
  1. [ServiceContract]
  2. public interface ITestService
  3. {
  4.      [OperationContract]
  5.      DateInformation GetFutureDate(ref ServiceContext context,          
  6.      int futureDays);
  7. }

和一個對應(yīng)的實現(xiàn)服務(wù)的服務(wù)類:

 
 
 
 
  1. public class TestService : ITestService {
  2.     public DateInformation GetFutureDate(
  3.     ref ServiceContext context, int futureDays) {
  4.           return null;
  5.     }
  6. }

為了在SIlverlight應(yīng)用程序?qū)?yīng)的Web應(yīng)用程序中托管你的服務(wù),你需要添加一個到服務(wù)庫項目的引用,并創(chuàng)建一個名為TestService.svc的文件,你必須首先以文本格式添加這個文件,然后修改前綴,給TestService.svc文件增加下面的標(biāo)記:

 
 
 
 
  1. <%@ ServiceHost Language="C#" Debug="true" Service = "MyTest-
  2. Service.TestService" %>

你還需要在Web應(yīng)用程序的Web.config文件中配置你的服務(wù),WCF團(tuán)隊在Microsoft .NET Framework 4中做了很大努力,通過使用綁定的默認(rèn)值減少了WCF配置的復(fù)雜性,這意味著你不用自己添加任何配置信息,但對開發(fā)而言,有些配置覆蓋掉可能更好,將下面的內(nèi)容添加到你的Web.config文件中:

 
 
 
 
  1.     
  2.  
  3.      
  4.         
  5.         
  6.      
  7.  
  8.      

服務(wù)Metadata標(biāo)簽告訴WCF發(fā)布當(dāng)你向Silverlight應(yīng)用程序添加一個服務(wù)引用時使用到的元數(shù)據(jù),在你的本地機(jī)器上,Visual Studio會自動為你的服務(wù)分配一個地址,但在部署到生產(chǎn)環(huán)境時,你需要添加額外的配置信息指定服務(wù)的真實URL,注意Visual Studio會在服務(wù)庫項目的App.config文件中創(chuàng)建一個配置小節(jié),但WCF會忽略該配置信息。

測試服務(wù)配置

現(xiàn)在你可以測試你的服務(wù),首先測試你的配置文件設(shè)置是否正確,在解決方案資源管理器中選中SVC文件,點擊右鍵,在彈出的菜單中選擇“在瀏覽器中查看”,瀏覽器將會顯示關(guān)于服務(wù)的一些信息,注意自動生成的URL。

為了測試你的服務(wù)是否可以真正調(diào)用,Visual Studio提供了WCF測試客戶端工具,打開Visual Studio命令行窗口,在命令提示符后輸入命令wcftestclient,彈出該客戶端窗口后,選擇“文件”*“添加服務(wù)”選擇要測試的服務(wù),然后輸入瀏覽器中顯示的URL,從測試客戶端,你可以結(jié)合數(shù)據(jù)調(diào)用每一個服務(wù)方法,并查看結(jié)果,WCF測試客戶端如圖2所示。

 
圖2 WCF測試客戶端提供了一個方法驗證服務(wù)是否正確啟動,
界面右側(cè)的“請求”和“響應(yīng)”區(qū)域提供了一個方法進(jìn)行冒煙測試

至此,你已經(jīng)為服務(wù)完成了服務(wù)端檢查,你可以增加你認(rèn)為合適的操作、業(yè)務(wù)和數(shù)據(jù)訪問層以擴(kuò)大你的服務(wù),我總是會增加一個服務(wù)測試項目測試服務(wù)庫,這種測試通常會獲得更高回報,在通過Silverlight客戶端應(yīng)用程序診斷服務(wù)問題時,可以幫助我避免掉耗時且令人沮喪的問題。

原文名:Debug WCF Services in Silverlight Apps        黃永兵 譯

原文出處:http://visualstudiomagazine.com/articles/2010/11/01/visual-studio-2010-tips-2.aspx


網(wǎng)站欄目:在Silverlight應(yīng)用程序中調(diào)試WCF服務(wù)
分享網(wǎng)址:http://www.dlmjj.cn/article/cceddco.html