明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

ASP.NET創(chuàng)建XML Web服務(wù)全接觸(8)

[摘要]使用輸出緩沖來改善你的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ù)幫助頁面作為你唯一的文檔。