使用ASP.NET AJAX調用WCF服務項模板
開發平臺
1.Visual Studio 2008 SP1
2..NET Framework 3.5 SP1
3.ASP.NET AJAX
4.IIS 7或者VS 集成Web服務器 [WCF 和 SVS 文件配置]
5.Windows Vista
介紹
WCF (Windows Communication Foundation)中新增了很多特性來加強微軟應用程序開發平臺,尤其是在應用程序之間的通信上。在本篇文章 中,我們講了解到WCF是如何直接在客戶端JavaScript中使用的場景。這是由ASP.NET AJAX提供的一項非??岬奶匦浴T诒酒恼轮校覀?不 會對WCF的內部細節加以大量討論,而是講主要精力放在如何在JavaScript中直接使用服務。因此,我們在幕后不會對ASP.NET或者.NET運行時 是如何管理這些功能的特性進行探討。
為了演示文中涉及的理論與事實,我們講創建一個帶有兩個工程的解決方案。因此,不浪費時間了,開始創建一個空白的解決方案并保存起 來。現在,添加一個新的類庫項目到解決方案中。命名該類庫為ServiceLibrary。然后,添加一個Web應用程序工程到該解決方案中并命名為 WEBUI。后面我們將看到有兩種方式添加能夠讓JavaScript調用的WCF服務。
1.使用啟用AJAX的WCF服務項模板
2.在類庫中使用服務接口定義
使用啟用AJAX的WCF服務項模板
這里,我們將看到一種簡單明了的方式在JavaScript中調用一個WCF服務 。右鍵點擊Web應用程序工程并選擇添加新項。選擇啟用AJAX的WCF服務項模板,并命名為“HelloWorldService.svc” 最后點擊確定。此時, 向導會如愿添加一個HelloWorldService.svc文件到解決方案中。該文件也提供了代碼分離頁面。如果你在一個XML文件編輯器中打開了該文件 ,你將看到如下形式的標簽:
<%@ ServiceHost Language="C#" Debug="true" Service="WebUI.HelloWorldService" CodeBehind="HelloWorldService.svc.cs" %> |
如果你打開后臺代碼文件,將看到如下形式的代碼:
namespace WebUI |
VS 2008會自動為你在web.config文件中添加一些必要的配置,因此不需要手工在web.config文件中添加任何配置。現在,繼續并添加一個 HelloWorld()方法,該方法返回一個“HelloWorld”的字符串并為該方法添加一個[OperationContract]特性。在本篇文章的后面我們將解釋該 特性。
現在,為Web應用程序工程添加一個頁面并命名它為“HelloWorldTest.aspx”。從Visual Studio工具箱中拖拽一個Script Manager項到頁 面上。在ScriptManager 標簽內部,添加一個到該服務的引用。下面給出了該代碼示例:
<asp:ScriptManager ID="ScriptManager1" runat="server"> |
現在,添加一個button按鈕和一個textbox文本框到頁面上,并為該按鈕添加點擊事件處理程序,以使用JavaScript函數來調用服務。當你 編寫服務調用函數時,Visual Studio 2008 HTML編輯器將提供智能感知功能以方便編寫必要的函數調用。完整的HTML代碼如下所示:
<form id="form1" runat="server"> function onFailure(result) { |
注意,當調用服務時,我們傳遞了兩個方法:一個用于進行回調而另一個用于錯誤回調。如果我們需要傳遞任何參數到該函數中,這些參數 會首先傳遞進去然后再進行回調。
因此,如果我們有一個名為getvalue 的函數并接收兩個字符串參數,那么我們將以[NameSpaceName].[ServiceName].getvalue(“value one”,”value two”,on_success,on_error);的方式調用該函數,此刻on_success和on_error各自表示回調和錯誤回調。
【編輯推薦】