1 webservice 屬性
[webservice(description="ddddd"),namespace="http://`````",Name="webservice的名稱"]
2 webmethod:web服務方法(包含以下6個屬性)
description:對webservice服務類中方法的注釋
enablesession:標識當前webservice是否啟動session;預設為false;(如果false,則無法使用asp.net的session對象)↓使用session的代碼;
///
/// WebService1 的摘要說明
///
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允許使用 ASP.NET AJAX 從指令碼中調用此 Web 服務,請取消注釋以下行。
// [System.Web.Script.Services.ScriptService]
public class WebService1 : System.Web.Services.WebService
{
[WebMethod(EnableSession = true, Description = "相加的操作")]
public string HelloWorld(string logname)
{
if (logname == "admin")
{
Session["User"] = logname;
}
else
{
Session.Remove("User");
}
if (Session["User"] == null)
{ return "未登入"; }
else
{ return "已登入"; }
}
}
messagename:用來實現重載;由於webservice無法實現參數的重載,因此需要用這個屬性來標誌方法的重載
public int Add(int i)
[webmethod(messagename="Add1")]
public int Add(int i,int j)
這樣在調用的時候Add是指第一個,Add1是指第二個方法;
TransactionOption:((/ □ ) 理解了半天,剛準備驗證下,發現msdn中.net2.0以上版本不再支援,so····)指示當前的這個方法是 是否在“事務模式”下運行;(即當方法AAA被標記為事務模式下運行時,如果執行AAA這個方法的過程中發生異常,且被捕獲,那麼AAA這個方法會自動復原到執行前的狀態;如果未發生異常,則提交事務。除非該方法顯示調用SetAbort)。
其中TransactionOption.Disabled,NotSupported標識不在事務模式下運行
Supported:標識當前的方法中如果有事務(即顯示指明了事務,比如sql處理事務)的話就在事務模式下,沒有的話就普通模式執行;
Required和RequiredNew標識當前方法都在事務模式下執行;
CacheDuration:指示當前方法的緩衝時間。預設為不緩衝;(這裡有可能存在的問題,HTTP協議支援瀏覽器設定http訊息頭cache-control屬性,而當asp.net應用程式發現http請求中的cache-control=no-cache的時候,就會忽略asp.net程式所設定的緩衝;ps:對緩衝的理解又多了一點。)
BufferResponse:msdn解釋:
WebMethod 屬性 (Attribute) 的 BufferResponse 屬性 (Property) 啟用對 XML Web services 方法響應的緩衝。當設定為 true(預設設定)時,ASP.NET 在將響應向下發送到用戶端之前對整個響應進行緩衝。緩衝非常有效,它通過最小化輔助進程和 IIS 進程之間的通訊來協助提高效能。當設定為 false 時,ASP.NET 以 16KB 的塊區緩衝響應。通常,只有在不想將響應的全部內容一次緩衝到記憶體時,才將該屬性 (Property) 設定為 false。例如,您在反寫一個集合,該集合正在以流的形式從資料庫輸出其項。除非另外指定,預設值為 true。有關更多資訊,請參見 WebMethodAttribute.BufferResponse 屬性 (Property)。含義:即當false的時候,asp.net程式將需要返回給瀏覽器的資料一點一點返回,而不是全部讀取到記憶體中再Response;應用情境:當需要返回的資料非常大,而又不想佔用太大的記憶體,那麼設定為false,將沒讀取16kb內容就返回給Browser;
注:更多精彩教程請關注三聯設計教程 欄目,