成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

在Silverlight應用程序中調試WCF服務

原創
開發 后端
創建WCF服務的方法很多,這里要介紹的方法會讓你解決問題變得更容易,它利用Visual Studio 2010中提供的輕量級WCF配置選項。

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

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

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

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

此外,Visual Studio會添加一個TestServiceCB.svc文件,其內容如下,它實現了服務接口:

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

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

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

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

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

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

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

和一個對應的實現服務的服務類:

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

為了在SIlverlight應用程序對應的Web應用程序中托管你的服務,你需要添加一個到服務庫項目的引用,并創建一個名為TestService.svc的文件,你必須首先以文本格式添加這個文件,然后修改前綴,給TestService.svc文件增加下面的標記:

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

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

  1. <system.serviceModel> 
  2.     <behaviors> 
  3.  <serviceBehaviors> 
  4.      <behavior> 
  5.         <serviceMetadata httpGetEnabled="true"/> 
  6.         <serviceDebug includeExceptionDetailInFaults="false"/> 
  7.      </behavior> 
  8.  </serviceBehaviors> 
  9.      </behaviors> 
  10. <serviceHostingEnvironment multipleSiteBindingsEnabled="true" /> 
  11. </system.serviceModel> 

服務Metadata標簽告訴WCF發布當你向Silverlight應用程序添加一個服務引用時使用到的元數據,在你的本地機器上,Visual Studio會自動為你的服務分配一個地址,但在部署到生產環境時,你需要添加額外的配置信息指定服務的真實URL,注意Visual Studio會在服務庫項目的App.config文件中創建一個配置小節,但WCF會忽略該配置信息。

測試服務配置

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

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

WCF測試客戶端提供了一個方法驗證服務是否正確啟動,界面右側的“請求”和“響應”區域提供了一個方法進行冒煙測試 
圖2 WCF測試客戶端提供了一個方法驗證服務是否正確啟動,
界面右側的“請求”和“響應”區域提供了一個方法進行冒煙測試

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

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

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

【編輯推薦】

  1. Silverlight開發的一些***實踐分享
  2. Silverlight 4 初學者的10大經典問答
  3. 全屏模式下處理Silverlight控件的兩種方式 
責任編輯:王曉東 來源: 51CTO.com
相關推薦

2011-03-22 09:45:56

Windows AzuSilverlight

2011-03-22 10:03:55

Windows AzuSilverlight

2009-06-25 11:18:20

Silverlight

2009-11-06 12:49:11

WCF面向服務

2009-07-27 17:46:42

WCF服務ASP.NET應用程序

2010-02-26 17:51:16

Silverlight

2010-01-04 10:41:14

Silverlight

2009-12-21 15:48:29

WCF應用程序

2012-02-15 13:26:56

IndexedDB

2010-03-02 13:06:22

SilverLight

2022-12-25 18:03:13

Debug原理軟件

2009-09-22 18:39:02

Silverlight

2010-04-01 15:10:06

Visual Stud

2011-03-15 16:07:33

Windows AzuWCF

2010-02-25 17:22:39

WCF服務行為

2012-06-07 09:15:14

ibmdw

2021-05-06 05:37:40

JavascriptSTT機器學習

2011-11-17 15:17:37

AdobeAIR調試性能

2010-03-01 17:44:39

Silverlight

2011-03-15 15:43:39

Windows AzuWCF
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩精品一| 酒色成人网 | 精品国产91| 日日日干干干 | 欧美日韩精品中文字幕 | 午夜免费福利片 | 欧美一区二区三区大片 | 久久专区 | 亚洲欧美日韩在线 | 中文字幕 在线观看 | 91视频中文 | 欧美精品综合在线 | 日韩av在线播 | 中文字幕亚洲视频 | 成人在线中文字幕 | 日日夜夜av | 国产永久免费 | 黄色在线免费观看 | 亚洲欧美中文日韩在线v日本 | 成人欧美一区二区 | 久久久www成人免费精品 | 九九精品久久久 | 在线一区观看 | 在线国产视频 | 欧美综合一区二区 | 中文字幕 在线观看 | 国产激情视频在线免费观看 | 一区二区精品视频 | av永久| 91av免费观看 | 欧美精品在线一区 | 亚洲成av人片在线观看无码 | 亚洲欧美日韩在线不卡 | 免费看一级毛片 | 日本一区二区高清不卡 | 国产黄色大片网站 | 青青草一区二区三区 | 视频在线亚洲 | 欧美 日韩 视频 | 欧美精品一区二区三区在线四季 | 免费看a |