asp.net中WebService屬性記錄

發布時間:2017-04-10 17:39 來源:互聯網 當前欄目:電腦編程入門

   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;

  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、
  • 1、
  • 2、
  • 3、
  • 4、
  • 5、
  • 6、
  • 7、
  • 8、
  • 9、
  • 10、
  • 11、
  • 12、
  • 13、
  • 14、
  • 15、
  • 16、
  • 17、
  • 18、
  • 19、
  • 20、
  • 21、
  • 22、
  • 23、
  • 24、
  • 25、