asp.net中WebService屬性記錄_ASP教程
推薦:如何在ASP.NET應(yīng)用程序中初始化副標(biāo)題#e# 每個(gè)程序都需要初始化的過(guò)程,用來(lái)讀取配置或者設(shè)置一些運(yùn)行環(huán)境(變量),對(duì)于ASP.NET程序來(lái)說(shuō),又該在哪里執(zhí)行初始化的任務(wù)呢? 我想應(yīng)該絕大多數(shù)人都知道在Global.asax中執(zhí)行初始化的過(guò)程,然而有些細(xì)節(jié)是我們需要關(guān)注的。 本文用例 在這篇博客的示例代碼
1 webservice 屬性
[webservice(description="ddddd"),namespace="http://`````",Name="webservice的名稱"]
2 webmethod:web服務(wù)方法(包含以下6個(gè)屬性)
description:對(duì)webservice服務(wù)類中方法的注釋
enablesession:標(biāo)識(shí)當(dāng)前webservice是否啟動(dòng)session;默認(rèn)為false;(如果false,則無(wú)法使用asp.net的session對(duì)象)↓使用session的代碼;
///
/// WebService1 的摘要說(shuō)明
///
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
// 若要允許使用 ASP.NET AJAX 從腳本中調(diào)用此 Web 服務(wù),請(qǐng)取消注釋以下行。
// [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:用來(lái)實(shí)現(xiàn)重載;由于webservice無(wú)法實(shí)現(xiàn)參數(shù)的重載,因此需要用這個(gè)屬性來(lái)標(biāo)志方法的重載
public int Add(int i)
[webmethod(messagename="Add1")]
public int Add(int i,int j)
這樣在調(diào)用的時(shí)候Add是指第一個(gè),Add1是指第二個(gè)方法;
TransactionOption:((/ □ \) 理解了半天,剛準(zhǔn)備驗(yàn)證下,發(fā)現(xiàn)msdn中.net2.0以上版本不再支持,so····)指示當(dāng)前的這個(gè)方法是 是否在“事務(wù)模式”下運(yùn)行;(即當(dāng)方法AAA被標(biāo)記為事務(wù)模式下運(yùn)行時(shí),如果執(zhí)行AAA這個(gè)方法的過(guò)程中發(fā)生異常,且被捕獲,那么AAA這個(gè)方法會(huì)自動(dòng)回滾到執(zhí)行前的狀態(tài);如果未發(fā)生異常,則提交事務(wù)。除非該方法顯示調(diào)用SetAbort)。
其中TransactionOption.Disabled,NotSupported標(biāo)識(shí)不在事務(wù)模式下運(yùn)行
Supported:標(biāo)識(shí)當(dāng)前的方法中如果有事務(wù)(即顯示指明了事務(wù),比如sql處理事務(wù))的話就在事務(wù)模式下,沒(méi)有的話就普通模式執(zhí)行;
Required和RequiredNew標(biāo)識(shí)當(dāng)前方法都在事務(wù)模式下執(zhí)行;
CacheDuration:指示當(dāng)前方法的緩存時(shí)間。默認(rèn)為不緩存;(這里有可能存在的問(wèn)題,HTTP協(xié)議支持瀏覽器設(shè)置http消息頭cache-control屬性,而當(dāng)asp.net應(yīng)用程序發(fā)現(xiàn)http請(qǐng)求中的cache-control=no-cache的時(shí)候,就會(huì)忽略asp.net程序所設(shè)置的緩存;ps:對(duì)緩存的理解又多了一點(diǎn)。)
BufferResponse:msdn解釋:
WebMethod 屬性 (Attribute) 的 BufferResponse 屬性 (Property) 啟用對(duì) XML Web services 方法響應(yīng)的緩沖。當(dāng)設(shè)置為 true(默認(rèn)設(shè)置)時(shí),ASP.NET 在將響應(yīng)向下發(fā)送到客戶端之前對(duì)整個(gè)響應(yīng)進(jìn)行緩沖。緩沖非常有效,它通過(guò)最小化輔助進(jìn)程和 IIS 進(jìn)程之間的通信來(lái)幫助提高性能。當(dāng)設(shè)置為 false 時(shí),ASP.NET 以 16KB 的塊區(qū)緩沖響應(yīng)。通常,只有在不想將響應(yīng)的全部?jī)?nèi)容一次緩沖到內(nèi)存時(shí),才將該屬性 (Property) 設(shè)置為 false。例如,您在反寫一個(gè)集合,該集合正在以流的形式從數(shù)據(jù)庫(kù)輸出其項(xiàng)。除非另外指定,默認(rèn)值為 true。有關(guān)更多信息,請(qǐng)參見 WebMethodAttribute.BufferResponse 屬性 (Property)。含義:即當(dāng)false的時(shí)候,asp.net程序?qū)⑿枰祷亟o瀏覽器的數(shù)據(jù)一點(diǎn)一點(diǎn)返回,而不是全部讀取到內(nèi)存中再Response;應(yīng)用場(chǎng)景:當(dāng)需要返回的數(shù)據(jù)非常大,而又不想占用太大的內(nèi)存,那么設(shè)置為false,將沒(méi)讀取16kb內(nèi)容就返回給Browser;
注:更多精彩教程請(qǐng)關(guān)注模板無(wú)憂設(shè)計(jì)教程 欄目,
分享:程序員看淘寶,如何用Session保存用戶狀態(tài)網(wǎng)上購(gòu)物已經(jīng)成為現(xiàn)在生活不可缺少的一部分。我們上淘寶只是為了消費(fèi),今天換一個(gè)角度,用程序員的眼光看看淘寶。 如上圖: 情況一:當(dāng)打開一些和賬戶有關(guān)的網(wǎng)頁(yè),檢測(cè)用戶沒(méi)有登錄,系統(tǒng)自動(dòng)會(huì)跳轉(zhuǎn)到登錄界面。 情況二:當(dāng)檢測(cè)到已經(jīng)有用戶登錄,頁(yè)面會(huì)自動(dòng)跳轉(zhuǎn)到目的
- 如何在ASP.NET應(yīng)用程序中初始化
- 程序員看淘寶,如何用Session保存用戶狀態(tài)
- ASP.NET七大身份驗(yàn)證方式及解決方案
- 8 種提升 ASP.NET Web API 性能的方法
- asp.net計(jì)算每個(gè)頁(yè)面執(zhí)行時(shí)間的方法
- asp實(shí)現(xiàn)獲取MSSQL數(shù)據(jù)庫(kù)表指定條件行數(shù)的函數(shù)
- asp實(shí)現(xiàn)讀取數(shù)據(jù)庫(kù)輸出json代碼
- JScript中遍歷Request表單參數(shù)集合的方法
- 如何使用ASP建立虛擬的FTP服務(wù)器
- 用ASP+CSS實(shí)現(xiàn)隨機(jī)背景
- 簡(jiǎn)述Xml.Serialization如何序列化對(duì)象到XML文件
- 如何過(guò)濾html中的回車空格
- 相關(guān)鏈接:
- 教程說(shuō)明:
ASP教程-asp.net中WebService屬性記錄
。