成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASP.NET的XML Web服務方法

開發 后端
本文介紹ASP.NET支持XML Web服務方法的事務利用公共語言運行期中的支持,其是基于Microsoft Transaction Server ( MTS)和COM+ Services中相同的分布式事務模型。

ASP.NET支持XML Web服務方法的事務利用公共語言運行期中的支持,其是基于Microsoft Transaction Server ( MTS)和COM+ Services中相同的分布式事務模型。該模型基于明確的判斷一個對象是否參與一個事務,而不是編寫特定的代碼用來處理委托和回調一個事務。對于一個使用ASP.NET創建的XML Web服務,你可以通過設置其應用到一個XML Web服務方法上的WebMethod屬性的TransactionOption屬性來聲明一個XML Web服務的事務行為。如果該XML Web服務方法執行的時候拋出一個異常,那么該事務自動地結束;相反,如果沒有發生異常,該事務自動委托。

WebMethod屬性的TransactionOption屬性規定一個XML Web服務方法如何參與一個事務。雖然這個聲明級別表示一個事務邏輯,但是它是消除實際事務的一個步驟。當事物對象訪問數據源(如數據庫或消息隊列)時實際事務產生。關聯該對象的事務自動流向適當的資源管理程序。像.NET Framework Data Provider(用于SQL Server或OLE DB)這樣的.NET Framework數據提供者在對象的上下文中查找事務并通過Distributed Transaction Coordinator (DTC,分布式事務協調程序)編目事務。全部的事務自動產生。

XML Web服務方法只能參與一個作為新事務的根的事務。作為一個新事務的根,所有的與資源管理器(像運行Microsoft SQL Server、Microsoft Message Queuing和Microsoft Host Integration Server的服務器)的相互作用維護需要運行健壯的分布式應用程序的ACID性質。調用其他的XML Web服務方法的XML Web服務方法參與不同的事務,因為事務不流經XML Web服務方法。

ASP.NET使用來自XML Web服務方法的事務
聲明一個XML Web服務。

  1. <%@WebServiceLanguage="C#"Class="Orders"%> 
  2. <%@Assemblyname="System.EnterpriseServices,Version=1.0.3300.0,
    Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a"
    %> 
  3. usingSystem;  
  4. usingSystem.Data;  
  5. usingSystem.Data.SqlClient;  
  6. usingSystem.Web.Services;  
  7. usingSystem.EnterpriseServices;  
  8.  
  9. publicclassOrders:WebService  
  10. {  
  11. [WebMethod(TransactionOptionTransactionOption=TransactionOption.RequiresNew)]  
  12. publicintDeleteAuthor(stringlastName)  
  13. {  
  14. StringdeleteCmd="DELETEFROMauthorsWHEREau_lname='"+  
  15. lastName+"'";  
  16. StringexceptionCausingCmdSQL="DELETEFROMNonExistingTableWHERE  
  17. au_lname='"+lastName+"'";  
  18.  
  19. SqlConnectionsqlConn=newSqlConnection(  
  20. "PersistSecurityInfo=False;IntegratedSecurity=SSPI;database=pubs;server=myserver");  
  21.  
  22. SqlCommanddeleteCmd=newSqlCommand(deleteCmdSQL,sqlConn);  
  23. SqlCommandexceptionCausingCmd=new 
  24. SqlCommand(exceptionCausingCmdSQL,sqlConn);  
  25.  
  26. //Thiscommandshouldexecuteproperly.  
  27. deleteCmd.Connection.Open();  
  28. deleteCmd.ExecuteNonQuery();  
  29.  
  30. //Thiscommandresultsinanexception,sothefirstcommandis  
  31. //automaticallyrolledback.SincetheXMLWebservicemethodis  
  32. //participatinginatransaction,andanexceptionoccurs,ASP.NET  
  33. //automaticallyabortsthetransaction.ThedeleteCmdthat  
  34. //executedproperlyisrolledback.  
  35.  
  36. intcmdResult=exceptionCausingCmd.ExecuteNonQuery();  
  37.  
  38. sqlConn.Close();  
  39.  
  40. returncmdResult;  
  41. }  
  42. }  
  43. [VisualBasic]  
  44. <%@WebServiceLanguage="VB"Class="Orders"%> 
  45. <%@assemblyname="System.EnterpriseServices"%> 
  46.  
  47. ImportsSystem  
  48. ImportsSystem.Data  
  49. ImportsSystem.Data.SqlClient  
  50. ImportsSystem.Web.Services  
  51. ImportsSystem.Web.Util  
  52. ImportsSystem.EnterpriseServices  
  53.  
  54. PublicClassOrders  
  55.  
  56. <WebMethod(TransactionOptionTransactionOption:=TransactionOption.RequiresNew)>_  
  57. PublicFunctionDeleteAuthor(lastNameasString)asInteger  
  58.  
  59. DimdeleteCmdSQLAsString="DELETEFROMauthorsWHEREau_lname='"+_  
  60. lastName+"'"  
  61. DimexceptionCausingCmdSQLAsString="DELETEFROM"+_  
  62. "NonExistingTableWHEREau_lname='"+lastName+"'"  
  63.  
  64. DimsqlConnAsSqlConnection=NewSqlConnection(_  
  65. "PersistSecurityInfo=False;IntegratedSecurity=SSPI;database=pubs;server=myserver")  
  66.  
  67. DimdeleteCmdAsSqlCommand=NewSqlCommand(deleteCmdSQL,sqlConn)  
  68. DimexceptionCausingCmdAsSqlCommand=New_ 
  69. SqlCommand(exceptionCausingCmdSQL,sqlConn)  
  70.  
  71. 'Thiscommandshouldexecuteproperly.  
  72. deleteCmd.Connection.Open()  
  73. deleteCmd.ExecuteNonQuery()  
  74.  
  75. 'Thiscommandresultsinanexception,sothefirstcommandis  
  76. 'automaticallyrolledback.SincetheXMLWebservicemethodis  
  77. 'participatinginatransaction,andanexceptionoccurs,ASP.NET  
  78. 'automaticallyabortsthetransaction.ThedeleteCmdthat  
  79. 'executedproperlyisrolledback.  
  80.  
  81. DimcmdResultAsInteger=exceptionCausingCmd.ExecuteNonQuery()  
  82. sqlConn.Close()  
  83.  
  84. ReturncmdResult  
  85. EndFunction  
  86. EndClass 

【編輯推薦】

  1. ASP.NET頁面顯示XML數據
  2. 了解什么是IFRAME ASP.NET
  3. ASP.NET生命周期的展示
  4. 解決ASP.NET AJAX腳本的錯誤問題
  5. 詳解ASP.NET應用程序
責任編輯:佚名 來源: 51cto博客
相關推薦

2009-07-23 15:18:30

創建XML Web服務ASP.NET

2009-07-28 16:29:06

XML Web服務ASP.NET構造

2009-07-28 17:34:28

ASP.NET XML

2009-07-28 17:28:49

XML Web服務使用ASP.NET

2009-07-28 15:53:43

ASP.NET Web

2009-07-23 16:44:50

XML Web服務使用ASP.NET構造

2009-07-24 16:05:05

調用Web ServiASP.NET

2009-07-28 14:40:15

XML數據ASP.NET

2009-07-27 14:46:16

XML和ASP.NET

2009-09-04 13:11:25

ASP.NET生成XM

2009-12-25 10:36:10

ASP.NET 和 X

2009-08-28 09:58:20

ASP.NET Web

2009-07-28 13:26:34

Render方法ASP.NET

2010-03-12 09:38:58

2009-08-03 17:35:07

ASP.NET WebASP.NET編程工具

2009-07-28 10:43:23

Web服務器ASP.NET

2009-07-29 17:16:47

2009-07-23 14:08:58

2014-07-31 09:28:09

ASP.NETWeb API

2011-07-06 13:41:06

ASP.NET
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区三区视频在线 | 青青草社区| 日韩成人av在线 | 黄色日批视频 | 国产剧情一区二区三区 | 日韩一级| 亚洲视频免费观看 | 91性高湖久久久久久久久_久久99 | 久久精品亚洲精品国产欧美kt∨ | 美女操网站 | 高清成人免费视频 | 国产精品不卡一区 | 精品国产免费一区二区三区演员表 | 亚洲视频手机在线 | 久久大全 | 久久久久久看片 | 91久久国产精品 | 亚洲精品一区中文字幕乱码 | 在线一区二区三区 | 天天亚洲| 久久aⅴ乱码一区二区三区 亚洲国产成人精品久久久国产成人一区 | 中文字幕在线看 | 日韩在线观看中文字幕 | 日韩一区二区三区精品 | 在线一区视频 | 亚洲国产成人精品一区二区 | 午夜私人影院在线观看 | 国产成人综合在线 | 免费国产视频 | 黄网站免费在线看 | 夜夜操天天艹 | 精品欧美一区二区三区免费观看 | 亚洲欧洲精品一区 | 在线免费国产 | 亚洲一区视频在线播放 | 国产精品96久久久久久 | 久久久免费毛片 | 国产一级视频免费播放 | 久久精品99 | 日韩午夜一区二区三区 | 国精日本亚洲欧州国产中文久久 |