.NET開發(fā)網(wǎng)站過程中易被忽視的問題 By admin 2009/7/14 13:46:00 在運(yùn)用Visiol studio.NET 開發(fā)Web 應(yīng)用程式中,開發(fā)者常常會(huì)遇到一些問題:如我開發(fā)好的程式,在開發(fā)環(huán)境下測試沒問題,怎么一搬到應(yīng)用環(huán)境下,就會(huì)有問題? 不是程式的無法運(yùn)行,就是程式的效率慢的同蝸牛在爬, 這種情況在.NET的新手中尤其常見。我不知道為什么,一些介紹.NET開發(fā)的書本里引用的例子代碼,也對(duì)此問題視而不見,尤其讓我郁悶的是一些我喜歡的書,如:<<ADO.NET技術(shù)內(nèi)幕>>,<<ASP.NET2.0高級(jí)編程(第4版 )>>,這兩本都是清華大學(xué)出版社出版的, 有一本書更糟糕<<Visual Basic.Net 專業(yè)項(xiàng)目實(shí)例開發(fā)>>,我建議大家還是不要看了吧,免的浪費(fèi)時(shí)間和精力。 這篇文章不僅對(duì).NET開發(fā)者的新手有幫助,同樣對(duì)哪些有經(jīng)驗(yàn),也帶來一些啟示和參考。 他們會(huì)遇到什么樣的問題,我不妨總結(jié)給大家:1. 數(shù)據(jù)庫連接超時(shí)2. 創(chuàng)建的對(duì)象只管用,不管釋放3. 調(diào)試(Debug)模式下編譯后,就用于應(yīng)用環(huán)境中了4. 實(shí)際作業(yè)模式分享 上面的問題就像毒瘤,積累到一定程度就爆發(fā),且影響深遠(yuǎn)。 一、數(shù)據(jù)庫連接超時(shí)篇 若要知道數(shù)據(jù)庫連接超時(shí)問題,先看下面一段代碼: [Sample-01]:Public Shared Function getOEMPN(ByVal psPN As String, ByRef OEMPN As String) As BSResult0001 Dim clsResult As New BSResult0002 Try0003 clsResult.ResultID = -10004 Dim dtResult As New DataTable0005 Dim Sql As String = String.Empty0006 Dim clsOraDb As New clsOraClienDb0007 Dim strConn As String = ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString0008 clsOraDb.Open(strConn) ‘這里Open后,后面看不到 clsOraDb.Close0009 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 Then0012 Return clsResult0013 End If0014 If dtResult Is Nothing Then0015 Return clsResult0016 End If0017 If dtResult.Rows.Count > 0 Then0018 OEMPN = dtResult.Rows(0)("FRUNO").ToString()0019 Else0020 OEMPN = ""0021 End If0022 clsResult.ResultID = 10023 Return clsResult0024 Catch ex As Exception0025 clsResult.ResultID = -10026 Return clsResult0027 End TryEnd Function 對(duì)上述代碼行的部分解釋: 0006:引用數(shù)據(jù)庫連接的類; 0008:打開數(shù)據(jù)庫連接; 然后,整個(gè)函數(shù)你再找不到關(guān)閉數(shù)據(jù)庫連接的動(dòng)作,是要等著操作系統(tǒng)來釋放嗎? 有人就說啦,看起來好像沒有什么大不了的,這僅僅是一個(gè)函數(shù)而已;數(shù)據(jù)庫打開連接,未關(guān)閉不會(huì)影響到整個(gè)應(yīng)用程式;果真是這樣嗎? 讓我們談?wù)剶?shù)據(jù)庫連接的問題,在Oracle數(shù)據(jù)庫里,一般默認(rèn)的數(shù)據(jù)庫連接數(shù)最多也就100多來個(gè),不會(huì)超過200個(gè),即使你改變這個(gè)連接數(shù),但無論怎樣,它的連接數(shù)是有限的,不可能無限地供你消耗。 在Web這個(gè)程式里,它不僅不會(huì)自動(dòng)關(guān)閉數(shù)據(jù)庫連接,象這樣的函數(shù)還會(huì)每次調(diào)用,都會(huì)重新用掉一個(gè)數(shù)據(jù)庫連接;如果象這樣的函數(shù)很多的話,你就等著一個(gè)錯(cuò)誤警告頁面彈出來,如Database Connection Timeout….等訊息。 這還不算什么,更有甚者,盡然在循環(huán)語句里寫下面的代碼如 : 文章分頁: 1 | 2 | 3 | 分享聯(lián)系我們 掃二維碼與項(xiàng)目經(jīng)理溝通 我們?cè)谖⑿派?4小時(shí)期待你的聲音 感謝您的關(guān)注分享“.NET開發(fā)網(wǎng)站過程中易被忽視的問題” 煙寒網(wǎng)絡(luò)真誠為您服務(wù) ,點(diǎn)擊客服直接咨詢下單. 立即咨詢 我們服務(wù) 網(wǎng)站建設(shè) 高端網(wǎng)站建設(shè)服務(wù)商、相信品牌力量、相信知名企業(yè);制作后收費(fèi)13014982176! 微信小程序/微信公眾號(hào) 微信小程序 背靠10億流量,不論用戶需求是什么,都能被開發(fā)使用 一點(diǎn)創(chuàng)意,就能在“社交圈”中脫穎而出。 網(wǎng)站優(yōu)化/SEO 讓您的網(wǎng)站更靠近排名位置,讓客戶更容易找到您,seo優(yōu)化是一個(gè)漫長過程,整個(gè)網(wǎng)站營銷花最少的錢起最大的作用。