亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 服務器 > Web服務器 > 正文

Web服務中的異常處理(2)

2024-09-01 13:47:09
字體:
來源:轉載
供稿:網友

Web服務的實現為了達到這個示例的目的,我們創建一個名為CategoriesService的Web服務,選擇一個可視化的C#ASP.NETWeb服務作為項目的模版。一旦創建項目,我們就添加一個名為AddCategories的方法,并且給這個方法添加下列代碼:

[WebMethod]

publicboolAddCategories(stringxml)

{

try

{

using(SqlConnectionconn=newSqlConnection())

{

if(ValidateXml(xml))

{

XmlDocumentdoc=newXmlDocument();

doc.LoadXml(xml);

conn.ConnectionString=

"server=localhost;uid=sa;pwd=thiru;database=northwind";

conn.Open();

XmlNamespaceManagernsManager=new

XmlNamespaceManager(doc.NameTable);

//AddthenamespacetotheNamespaceManager

nsManager.AddNamespace("catNS",

"http://tempuri.org/CategoriesNamespace");

XmlNodecategoryNode=

doc.DocumentElement.SelectSingleNode("catNS:Category",

nsManager);

stringcategoryName=

categoryNode.SelectSingleNode("catNS:CategoryName",

nsManager).InnerText;

stringcategoryDescription=

categoryNode.SelectSingleNode("catNS:CategoryDescription",

nsManager).InnerText;

SqlCommandcommand=new

SqlCommand("usp_InsertCategories",conn);

command.CommandType=CommandType.StoredProcedure;//AddtheCategoryNameparameter

SqlParameterparamCategoryName=new

SqlParameter("@CategoryName",SqlDbType.NVarChar,15);

paramCategoryName.Direction=ParameterDirection.Input;

paramCategoryName.Value=categoryName;

command.Parameters.Add(paramCategoryName);

//AddtheDescriptionparameter

SqlParameterparamDescription=new

SqlParameter("@Description",SqlDbType.Text);

paramDescription.Direction=ParameterDirection.Input;

paramDescription.Value=categoryDescription;

command.Parameters.Add(paramDescription);command.ExecuteNonQuery();

}

else

throw

RaiseException("AddCategories",

"http://tempuri.org/CategoriesService",

builder.ToString(),

"2000","AddCategories",FaultCode.Client);

}

returntrue;

}

catch(SoapExceptionsoapEx)

{

throwsoapEx;

}

catch(Exceptionex)

{

EventLog.WriteEntry("Test",ex.Message);

throw

RaiseException("AddCategories",

"http://tempuri.org/CategoriesService",ex.Message,

"1000",ex.Source,FaultCode.Server);

}

}正如其名所提示的那樣,AddCategories方法負責把category的詳細信息添加到Northwind數據庫的categories表中。在執行添加操作之前,AddCategories方法使用一個外部的XML模式文件校驗被添加的XML數據,如果校驗失敗,它給Web服務的客戶端拋出一個異常。

讓我們來大致瀏覽上面的代碼吧。首先,把XML數據傳遞給它,調用ValidateXml方法。過一會我們再來看ValidateXml方法的代碼。ValidateXml方法返回true或false,這完全取決于XML校驗是否成功。如果返回true,那么就創建一個XmlDocument對象實例,并給它導入XML數據,另外還設置ConnectionString屬性來初始化SqlConnection對象,然后調用SqlConnection對象的Open方法。其次,創建一個XmlNamespaceManager實例,調用AddNamespace方法關聯一個命名空間。一旦關聯命名空間,我們就可以使用命名空間標識符引用正確的XML元素。再次,創建一個SqlParameter對象實例,給存儲過程添加參數。最后,調用SqlCommand對象的ExecuteNonQuery方法執行存儲過程。

如果ValidateXml方法返回false,則用名為RaiseException的助手方法拋出SoapException。我們現在就來討論RaiseException。RaiseException方法一個基本的助手方法,它封裝用來從Web服務中拋出異常的代碼。RaiseException方法的最后一個參數是一個枚舉常量,它的定義如下。

publicenumFaultCode

{

Client=0,

Server=1

}

XML校驗失敗表示客戶端提供了無效的XML數據。這種情況,我們應該把枚舉常量設為Client,給客戶應用程序指出這種錯誤。這就使得我們通知客戶端應用程序在再一次調用Web服務之前需要檢查輸入數據的格式成為可能。如果Web服務由于一些其他原因(例如,數據庫服務器的不可用)而失敗,那么就需要設置枚舉常量為Server。這就說明Web服務失敗是由于服務器端的一些問題造成的,客戶應用程序可以在幾秒鐘后重新請求。事實上,在catch塊中捕捉一般Exception,這正是我們要做的。 (出處:PConline)
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美专区国产专区| 精品久久久香蕉免费精品视频| 国产噜噜噜噜久久久久久久久| 亚洲国产精品久久91精品| 97精品在线视频| 亚洲男人天堂2023| 大胆欧美人体视频| 色悠悠久久久久| 久久99热精品这里久久精品| 亚洲国产日韩欧美在线动漫| 一级做a爰片久久毛片美女图片| 一本色道久久88综合亚洲精品ⅰ| 亚洲性日韩精品一区二区| 国产精品视频网站| 亚洲精品视频中文字幕| 亚洲美女激情视频| 自拍视频国产精品| 亚洲精品美女网站| 色噜噜狠狠狠综合曰曰曰88av| 亚洲四色影视在线观看| 欧美性生交大片免网| 久久久久亚洲精品| 日韩美女视频在线观看| 亚洲一区二区在线| 国产久一一精品| 国产视频999| 国产精品福利网站| 欧美丝袜一区二区| 久久久久国产精品免费网站| 在线国产精品视频| 欧美亚洲激情视频| 亚洲综合在线中文字幕| 国产亚洲人成a一在线v站| 久久夜色精品国产| 精品国产区一区二区三区在线观看| 色小说视频一区| 在线观看不卡av| 激情av一区二区| 国产精品美女主播| 亚洲情综合五月天| 亚洲欧美中文字幕| 国产做受69高潮| 日韩av中文字幕在线播放| 97精品视频在线观看| 久久99精品久久久久久青青91| 亚洲视频第一页| 国产精品三级在线| 国产精品成人aaaaa网站| 精品久久久视频| 国语自产精品视频在线看一大j8| 欧美成人在线影院| 欧美一区二区三区……| 亚洲自拍偷拍网址| 日韩视频免费观看| 精品亚洲va在线va天堂资源站| 亚洲天堂av电影| 精品视频在线播放免| 秋霞成人午夜鲁丝一区二区三区| 成人网址在线观看| 精品国内自产拍在线观看| 欧美性xxxxxxx| 一区二区av在线| 国产精品18久久久久久麻辣| 精品亚洲一区二区三区在线播放| 亚洲国产欧美久久| 成人午夜激情网| 欧美日韩午夜视频在线观看| 久久精品亚洲精品| 亚洲日本中文字幕免费在线不卡| 欧美激情喷水视频| 国产一区视频在线播放| 一区二区在线免费视频| 在线观看成人黄色| 国产亚洲精品久久久久久| 欧美疯狂性受xxxxx另类| 色www亚洲国产张柏芝| 久久艹在线视频| 亚洲永久在线观看| 51精品国产黑色丝袜高跟鞋| 日本久久久久久| 茄子视频成人在线| 亚洲人成网站999久久久综合| 精品欧美国产一区二区三区| 国产精品高清网站| 欧美一级电影久久| 国产精品丝袜视频| 欧美色播在线播放| 久久精品视频va| 国产精欧美一区二区三区| 日韩第一页在线| 国精产品一区一区三区有限在线| 国产亚洲激情在线| 亚洲国产精品视频在线观看| 久久精品国产91精品亚洲| 亚洲欧美精品伊人久久| 国产精品三级在线| 中文字幕久久久| 欧美性极品xxxx娇小| 综合欧美国产视频二区| 一区二区三区天堂av| 搡老女人一区二区三区视频tv| 国产一区欧美二区三区| 国内久久久精品| 国产91成人video| 国产婷婷色综合av蜜臀av| 欧美做爰性生交视频| 懂色av影视一区二区三区| 国产在线拍偷自揄拍精品| 国产精品观看在线亚洲人成网| 国产视频久久久久久久| 日韩av在线导航| 国产亚洲欧美日韩美女| 亚洲男人天堂手机在线| 亚洲二区在线播放视频| 日本精品一区二区三区在线| 日韩国产在线看| 狠狠久久亚洲欧美专区| 亚洲最大福利视频| 国产91免费看片| 91精品国产精品| 欧美激情手机在线视频| 欧美肥臀大乳一区二区免费视频| 亚洲一区亚洲二区亚洲三区| 国产精品久久视频| 国产精品久久久av久久久| 欧美一级黑人aaaaaaa做受| 国产精品日韩专区| 在线日韩日本国产亚洲| 亚洲老头同性xxxxx| 国产伦精品一区二区三区精品视频| 国产精品白嫩美女在线观看| 久久免费国产精品1| 日本成人精品在线| 国产精品第8页| 久久综合网hezyo| 亚洲欧美激情四射在线日| 在线视频欧美日韩| 欧美激情一区二区三级高清视频| 亚洲最大在线视频| 欧美香蕉大胸在线视频观看| 日韩一区视频在线| 国产精品一久久香蕉国产线看观看| 51精品在线观看| 国产综合香蕉五月婷在线| 国产精品国内视频| 成人午夜激情免费视频| 欧美激情一级精品国产| 91精品国产高清自在线| 欧美午夜无遮挡| 国产精品一区二区女厕厕| 日本精品免费观看| 中文字幕免费国产精品| 亚洲成人网在线观看| 免费91麻豆精品国产自产在线观看| 亚洲美腿欧美激情另类| 国产亚洲成精品久久| 热久久视久久精品18亚洲精品| 久久99视频精品| 亚洲男人天堂2023| 日韩精品在线观看一区| 久久人人爽人人爽人人片av高请| 秋霞av国产精品一区| 精品国偷自产在线| 国产精品国产亚洲伊人久久|