ASP.NET創(chuàng)建XML Web服務(wù)全接觸(8)
發(fā)表時(shí)間:2024-06-09 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]使用輸出緩沖來改善你的XML Web服務(wù)的性能。當(dāng)輸出緩沖開啟時(shí),服務(wù)請(qǐng)求的結(jié)果被保存在輸出緩沖中一段指定的時(shí)間。如果一個(gè)類似的XML Web服務(wù)請(qǐng)求被產(chǎn)生,結(jié)果可以從緩沖中取得,而不用重新計(jì)算。這樣就通過減少XML Web服務(wù)服務(wù)器所需的處理來改善了XML Web服務(wù)的反饋時(shí)間。高速緩存可在客戶...
使用輸出緩沖來改善你的XML Web服務(wù)的性能。當(dāng)輸出緩沖開啟時(shí),服務(wù)請(qǐng)求的結(jié)果被保存在輸出緩沖中一段指定的時(shí)間。如果一個(gè)類似的XML Web服務(wù)請(qǐng)求被產(chǎn)生,結(jié)果可以從緩沖中取得,而不用重新計(jì)算。這樣就通過減少XML Web服務(wù)服務(wù)器所需的處理來改善了XML Web服務(wù)的反饋時(shí)間。高速緩存可在客戶端和服務(wù)器兩者上執(zhí)行。Duration屬性允許你指定高速緩沖保存XML Web服務(wù)輸出的時(shí)間。
在客戶端上使用輸出高速緩沖的指令是:
<%@ OutputCache Duration="60" %> |
下面的代碼示例顯示如何在客戶應(yīng)用程序上使用Duration屬性來指定輸出高速緩沖為60秒。
[C#] <%@ Page Language="C#" %> <%@ Import Namespace="System.Net" %> <%@ OutputCache Duration="60" VaryByParam="none" %> <html> <script language="C#" runat="server"> void EnterBtn_Click(Object Src, EventArgs e) { MyMath.Math math = new MyMath.Math(); // Call the XML Web service. float total = math.Add(Convert.ToInt32(Num1.Text), Convert.ToInt32(Num2.Text)); // Display the results in a Label control. Total.Text = "Total: " + total.ToString(); } </script> <body> <form action="MathClient.aspx" runat=server> <font face="Verdana"> Enter the two numbers you want to add and press the Total button. <p> Number 1: <asp:textbox id="Num1" runat=server/> + Number 2: <asp:textbox id="Num2" runat=server/> = <asp:button id="Total_Button" text="Total" OnClick="EnterBtn_Click" runat=server/> <p> <asp:label id="Total" runat=server/> </font> </form> </body> </html> [Visual Basic] <%@ Page Language="VB" %> <%@ Import Namespace="System.Net" %> <%@ OutputCache Duration="60" VaryByParam="none" %> <html> <script language="VB" runat="server"> Sub EnterBtn_Click(Src As Object, e As EventArgs) Dim math As New MyMath.Math() ' Call the XML Web service. Dim addtotal As Single = math.Add(Convert.ToInt32(Num1.Text), Convert.ToInt32(Num2.Text)) ' Display the results in a Label control. Total.Text = "Total: " & addtotal.ToString() End Sub </script> <body> <form action="MathClient.aspx" runat=server> <font face="Verdana"> Enter the two numbers you want to add and press the Total button. <p> Number 1: <asp:textbox id="Num1" runat=server/> + Number 2: <asp:textbox id="Num2" runat=server/> = <asp:button id="Total_Button" text="Total" OnClick="EnterBtn_Click" runat=server/> <p> <asp:label id="Total" runat=server/> </font> </form> </body> </html> |
你還可以使用WebMethod屬性類的CacheDuration屬性來在服務(wù)器上允許高速緩沖。下面的代碼示例顯示如何在XML Web服務(wù)方法上使用CacheDuration屬性來指定輸出高速緩沖為60秒。
[C#] <%@ WebService Language="C#" Class="MathService" %> using System; using System.Web.Services; public class MathService : WebService { [WebMethod(CacheDuration=60)] public float Add(float a, float b) { return a + b; } [WebMethod(CacheDuration=60)] public float Subtract(float a, float b) { return a - b; } [WebMethod(CacheDuration=60)] public float Multiply(float a, float b) { return a * b; } [WebMethod(CacheDuration=60)] public float Divide(float a, float b) { if (b==0) return -1; return a / b; } } [Visual Basic] <%@ WebService Language="VB" Class="MathService" %> Imports System Imports System.Web.Services Public Class MathService Inherits WebService <WebMethod(CacheDuration := 60)> _ Public Function Add(a As Single, b As Single) As Single Return a + b End Function
<WebMethod(CacheDuration := 60)> _ Public Function Subtract(a As Single, b As Single) As Single Return a - b End Function
<WebMethod(CacheDuration := 60)> _ Public Function Multiply(a As Single, b As Single) As Single Return a * b End Function
<WebMethod(CacheDuration := 60)> _ Public Function Divide(a As Single, b As Single) As Single If b = 0 Then Return - 1 End If Return a / b End Function End Class |
當(dāng)設(shè)計(jì)你的XML Web服務(wù)時(shí),努力遵循如何格式化模式的結(jié)構(gòu)。
XML Web服務(wù)使用SOAP作為主要的傳送和序列化協(xié)議。一個(gè)SOAP消息由一個(gè)可選擇的頭體和消息體組成。頭部分包含可以被Web服務(wù)器體系結(jié)構(gòu)處理的信息。SOAP沒有定義任何頭。消息體部分包含由應(yīng)用程序處理的信息,例如用于XML Web服務(wù)的參數(shù)或返回值。
提供用于你的XML Web服務(wù)的文檔,如一個(gè)靜態(tài)HTML文件,描述你的服務(wù)的操作和數(shù)據(jù)結(jié)構(gòu)。還包括如何使用這個(gè)XML Web服務(wù)的示例。不要依靠服務(wù)描述或服務(wù)幫助頁面作為你唯一的文檔。