ASP.NET開發網站程式常見錯誤匯總

來源:互聯網
上載者:User

在運用Visiol studio.NET 開發Web 應用程式程式中,開發人員常常會遇到一些問題:如我開發好的程式,在開發環境下測試沒問題,怎麼一搬到應用環境下,就會有問題? 不是程式的無法運行,就是程式的效率慢的同蝸牛在爬, 這種情況在.NET的新手中尤其常見。我不知道為什麼,一些介紹.NET開發的書本裡引用的例子代碼,也對此問題視而不見,尤其讓我鬱悶的是一些我喜歡的書,如:<<ADO.NET技術內幕>>,<<ASP.NET2.0進階編程(第4版 )>>,這兩本都是清華大學出版社出版的, 有一本書更糟糕<<Visual Basic.Net 專業項目執行個體開發>>,我建議大家還是不要看了吧,免的浪費時間和精力。

這篇文章不僅對.NET開發人員的新手有協助,同樣對哪些有經驗,也帶來一些啟示和參考。

他們會遇到什麼樣的問題,我不妨總結給大家:

1. 資料庫連接逾時

2. 建立的對象只管用,不管釋放

3. 調試(Debug)模式下編譯後,就用於應用環境中了

4. 實際作業模式分享

上面的問題就像毒瘤,積累到一定程度就爆發,且影響深遠。

一、資料庫連接逾時篇

若要知道資料庫連接逾時問題,先看下面一段代碼:

[Sample-01]:
Public Shared Function getOEMPN(ByVal psPN As String, ByRef OEMPN As String) As BSResult
0001 Dim clsResult As New BSResult
0002 Try
0003 clsResult.ResultID = -1
0004 Dim dtResult As New DataTable
0005 Dim Sql As String = String.Empty
0006 Dim clsOraDb As New clsOraClienDb
0007 Dim strConn As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString
0008 clsOraDb.Open(strConn) ‘這裡Open後,後面看不到 clsOraDb.Close
0009 Sql = "SELECT SATBMMBRND.OEMPN FRUNO FROM SATBMMBRND WHERE SATBMMBRND.MATNO = :MATNO"
0010 Dim params() As OracleParameter = {New OracleParameter("MATNO", psPN)}
0011 If clsOraDb.FillDataTable(Sql, dtResult, params) = False Then
0012 Return clsResult
0013 End If
0014 If dtResult Is Nothing Then
0015 Return clsResult
0016 End If
0017 If dtResult.Rows.Count > 0 Then
0018 OEMPN = dtResult.Rows(0)("FRUNO").ToString()
0019 Else
0020 OEMPN = ""
0021 End If
0022 clsResult.ResultID = 1
0023 Return clsResult
0024 Catch ex As Exception
0025 clsResult.ResultID = -1
0026 Return clsResult
0027 End Try
End Function

對上述程式碼的部分解釋:


0006:引用資料庫連接的類;
0008:開啟資料庫連接;

然後,整個函數你再找不到關閉資料庫連接的動作,是要等著作業系統來釋放嗎? 有人就說啦,看起來好像沒有什麼大不了的,這僅僅是一個函數而已; 資料庫開啟串連,未關閉不會影響到整個應用程式; 果真是這樣嗎?

讓我們談談資料庫連接的問題,在Oracle資料庫裡,一般預設的資料庫連接數最多也就100多來個,不會超過200個,即使你改變這個串連數,但無論怎樣,它的串連數是有限的,不可能無限地供你消耗。

在Web這個程式裡,它不僅不會自動關閉資料庫連接,象這樣的函數還會每次調用,都會重新用掉一個資料庫連接; 如果象這樣的函數很多的話,你就等著一個錯誤警告頁面彈出來,如Database Connection Timeout...等訊息。



聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.