Flex調用C# WebService

大家在實際開發過程中,經常會需要C#與Flex協同合作,尤其對數據庫的訪問處理時,經常會通過C#寫好訪問數據庫的WebService,然後Flex調用WebService。

下面是一個簡單的Flex調用WebService的示例。

C#如何編寫WebService請看:http://blog.csdn.net/h0322/article/details/4776819

上述WebService示例中沒有對所寫的WebService進行發佈,如果想用Flex訪問的話,需要先將所寫的WebService發佈。具體發佈方法如下:

發佈前首先確保在網站項目裏寫的asmx方法調試通過沒有問題並都在方法前加了[WebMethod],確定後就可以發佈了,發佈方式跟發佈一個普通網站一樣。

    1、解決方案管理器裏右鍵點擊項目名>>>>>發佈,具體操作如下圖;

在彈出的窗體中,設置發佈方法爲:文件系統。然後設置目標位置,點擊:發佈即可。

    2、然後打開將結果部署到IIS中,如下圖:

任意定義一個網站名稱,物理路徑就選擇剛纔發佈時選擇的路徑,然後記得改一下端口號,最好是介於1025----65535之間,然後點擊確定就可以了。

部署完成之後在內容視圖找到asmx文件右鍵 瀏覽,如下圖所示。瀏覽器中的地址就是此服務的訪問地址。

到現在爲止,服務就定義併發布完成了。下面就是要用Flex調用WebService。

Flex提供了<mx:WebService>、<mx:HTTPService>和<mx:RemoteObject>標籤來直接訪問遠程數據,這用於與各種不同語言環境開發提供的遠程服務端數據源(如WebService)進行數據交互通信顯得更加容易(此段話源於網絡)。這裏就以<mx:WebService>標籤爲例進行介紹

 

 

<mx:WebService id="MyService"

wsdl=http://localhost:1999/Service1.asmxuseProxy="false">

<mx:operation name="HelloWorld"result="onSuccess(event)"fault="onFault(event)"/>

</mx:WebService>

wsdl屬性是指定到要訪問的WebService的wsdl地址,操作標籤(<mx:operation>),對應於WebService中定義的WebMethod方法。result屬性標記訪問WebService方法成功後的處理函數;fault則相反,指定於訪問失敗的處理函數。

以上就是通過<mx:WebService>標籤來訪問WebService的基本流程,下面是怎麼在Flex的客戶端調用WebService所定義的方法:

<mx:Script>

<![CDATA[

import mx.controls.Alert;

import mx.rpc.events.FaultEvent;

import mx.rpc.events.ResultEvent;

 

internal function onRequest():void

{

MyService.HelloWorld();

}

 

internal function onSuccess(evt:ResultEvent):void

{

Alert.show(evt.result.toString());

}

 

 

internal function onFault(evt:FaultEvent):void

{

Alert.show("訪問WebService失敗!");

}

]]>

</mx:Script>

通過上面的調用,就完成了一個簡單的Flex和.NET WebService的交互。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章