ASP.NET MVC2+MSSQL+Godaddy
? ? 先感謝一下博客園,在網(wǎng)上浪了這么長(zhǎng)時(shí)間,現(xiàn)在發(fā)現(xiàn)還是博客園的文章技術(shù)含量要高一點(diǎn)!
? ? 現(xiàn)在言歸正傳,最近在課外學(xué)習(xí)ASP.NET MVC,也在微軟的官網(wǎng)上學(xué)了一些例子教程,現(xiàn)在剛好有機(jī)會(huì)可以實(shí)踐一下,一個(gè)簡(jiǎn)單的網(wǎng)頁(yè)版調(diào)查問(wèn)卷,自然記錄結(jié)果是必須的功能,
? ? 唯一要求不同的時(shí),在對(duì)于問(wèn)卷的場(chǎng)景材料要求是隨機(jī)出現(xiàn)的即不是固定不變的,這個(gè)功能在MVC中也是十分好實(shí)現(xiàn),這里也就是不在贅述。?下面主要按照四個(gè)模塊來(lái)進(jìn)行該網(wǎng)站
? ? 的總結(jié):
? ? ASP.NET ?MVC2
? ? 先說(shuō)一下,為什么這里選用MVC2而不是MVC3,本來(lái)我在學(xué)習(xí)的時(shí)候也都是從MVC3開始的,但是在查看多了godaddy的賬號(hào)之后,發(fā)現(xiàn)自己的賬號(hào)只能支持ASP.NET 3.5,如果要
? ? 支持ASP.NET4.0則必須將賬戶升級(jí)到4GH,即godaddy的第四代網(wǎng)絡(luò)技術(shù),但是是要付費(fèi)的,所以這里就直接采用了MVC2,免得引起后續(xù)一系列的麻煩。由于這是個(gè)網(wǎng)站功能很簡(jiǎn)單
? ? 所以,在網(wǎng)站設(shè)計(jì)方面,沒(méi)有太多需要講的,這里需要說(shuō)明的主要有,兩點(diǎn):
? ? 1. 關(guān)于IIS6.0及以下的IIS服務(wù)器的路由設(shè)置,這在前面一片的route+htmlHelper中已經(jīng)有了講解。
? ? 2. web.config的配置說(shuō)明:
? ? ? ?這里引用以下下面鏈接的文章:http://www.cnblogs.com/a311300/archive/2010/01/26/1656881.html,這里將其中的參數(shù)說(shuō)明復(fù)制過(guò)來(lái),并加上自己的以下搜集如下:
參數(shù)說(shuō)明:
1.Data Source
SqlConnectionStringBuilder的DataSource屬性,對(duì)應(yīng)connectionString中的Data Source,“Data Source”可以由下列字符串代替:
“server”,“address”,“addr”和“network address”。Data Source=.\SQLExpress也可以寫成這樣Data Source=(local)\SQLExpress。
2.Integrated Security
SqlConnectionStringBuilder的IntegratedSecurity屬性,對(duì)應(yīng)connectionString中的Integrated Security,“Integrated Security”可以
寫成“trusted_connection”,為true時(shí),使用當(dāng)前的 Windows 帳戶憑據(jù)進(jìn)行身份驗(yàn)證,為false時(shí),需要在連接中指定用戶 ID 和密碼。
3.AttachDBFilename
SqlConnectionStringBuilder的AttachDBFilename屬性,對(duì)應(yīng)connectionString中的AttachDBFilename,“AttachDBFilename”可以寫成“extended properties”,“initial file name”。AttachDbFileName屬性指定連接打開的時(shí)候動(dòng)態(tài)附加到服務(wù)器上的數(shù)據(jù)庫(kù)文件的位置。
這個(gè)屬性可以接受數(shù)據(jù)庫(kù)的完整路徑和相對(duì)路徑(例如使用|DataDirectory|語(yǔ)法),在運(yùn)行時(shí)這個(gè)路徑會(huì)被應(yīng)用程序的App_Data目錄所代替。
4.User Instance
SqlConnectionStringBuilder的UserInstance屬性,對(duì)應(yīng)connectionString中的User Instance ,該值指示是否將連接從默認(rèn)的 SQL Server Express 實(shí)例重定向到在調(diào)用方帳戶之下運(yùn)行并且在運(yùn)行時(shí)啟動(dòng)的實(shí)例。UserInstance=true,在這種情況下,SQLServerExpress為了把數(shù)據(jù)庫(kù)
附加到新的實(shí)例,建立一個(gè)新的進(jìn)程,在打開連接的用戶身份下運(yùn)行。在ASP.NET應(yīng)用程序中,這個(gè)用戶是本地的ASPNET帳號(hào)或默認(rèn)的
NetworkService,這依賴于操作系統(tǒng)。為了安全地附加非系統(tǒng)管理員帳號(hào)(例如ASP.NET帳號(hào))提供的數(shù)據(jù)庫(kù)文件,建立一個(gè)獨(dú)立的SQLServer用戶實(shí)例是必要的。
5.min pool size=5;max pool size=512;
數(shù)據(jù)庫(kù)連接池最小連接數(shù)min pool size,數(shù)據(jù)庫(kù)連接池最大連接數(shù)max pool size.
6.DataDirectory是什么?
asp.net 2.0有一個(gè)特殊目錄app_data,通常Sql server 2005 express數(shù)據(jù)文件就放在這個(gè)目錄,相應(yīng)的數(shù)據(jù)庫(kù)連接串就是:
connectionString="…… data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|data.mdf;User
Instance=true"這里有一個(gè)DataDirectory的宏,它表示什么意義呢?
DataDirectory是表示數(shù)據(jù)庫(kù)路徑的替換字符串。由于無(wú)需對(duì)完整路徑進(jìn)行硬編碼,DataDirectory 簡(jiǎn)化了項(xiàng)目的共享和應(yīng)用程序的部署。例如,無(wú)需使用以下連接字符串:
"Data Source= c:\program files\MyApp\app_data\Mydb.mdf"
通過(guò)使用|DataDirectory|(包含在如下所示的豎線中),即可具有以下連接字符串:
"Data Source = |DataDirectory|\Mydb.mdf" 。
不僅僅是Sql server 2005 express中使用,也可以在其它的文件數(shù)據(jù)庫(kù)中使用,例如Sqllite數(shù)據(jù)庫(kù)文件的連接字符串:
<add name="DefaultDB"
connectionString="DriverClass=NHibernate.Driver.SQLite20Driver;Dialect=NHibernate.Dialect.SQLiteDialect;Data
Source=|DataDirectory|\data.db3" />
7.connect timeout= 9000
與其他 .NET Framework 數(shù)據(jù)提供程序(SQL Server、OLE DB 和 ODBC)中的 Connection 對(duì)象不同,OracleConnection 不支持
ConnectionTimeout 屬性。使用屬性或在連接字符串中設(shè)置連接超時(shí)沒(méi)有效果,而且返回的值總是零。OracleConnection 也不支持 Database
屬性或 ChangeDatabase 方法。
8. Initial Catalog
指定鏈接數(shù)據(jù)庫(kù)服務(wù)器時(shí),初始鏈接的數(shù)據(jù)庫(kù)的名稱。?
MSSQL
這里的MsSql服務(wù)器基本上沒(méi)有什么好說(shuō)的,唯一需要注意的就是在網(wǎng)站發(fā)布到godaddy之后,需要注意其中配置文件中的數(shù)據(jù)庫(kù)連接設(shè)置。
具體設(shè)置方法會(huì)在接下來(lái)的一節(jié)的godaddy配置中給出詳細(xì)說(shuō)明。
godaddy配置
首先說(shuō)明一下,在沒(méi)有進(jìn)行這個(gè)網(wǎng)站部署之前的該賬戶的基本狀態(tài):
asp.net3.5;數(shù)據(jù)庫(kù)服務(wù)器未建立;IIS6.0;自己設(shè)置了FTP賬戶可客戶端(這個(gè)幫了不少忙); 在godaddy上注冊(cè)的域名;
下面就按照自己部署網(wǎng)站時(shí)出現(xiàn)的問(wèn)題的順序進(jìn)行敘述:
?1.最先出現(xiàn)的就是前面一篇文章中講的MVC路由問(wèn)題,由于在寫頁(yè)面是都是直接用的HTML語(yǔ)法,而沒(méi)有使用HTMLhelper,所以很多涉及到連接的位置路徑都已經(jīng)
? ?固定下來(lái),所以要將其鏈接中全部加上.aspx。有點(diǎn)麻煩,同時(shí)又看到IIS7的integrated mode可以完美的支持MVC的路由,所以決定將IIS從IIS6.0升級(jí)到IIS7.0。
2.IIS升級(jí)
?my Account ---> my product之后,找到如下內(nèi)容:
? ? ? ? 進(jìn)入后,找到你要升級(jí)的賬戶,單擊--->
?在頁(yè)面中找到
? ? ? ? ?這里的IIS已經(jīng)是7.0了,如果不是7,0且可以升級(jí)的話,旁邊會(huì)出現(xiàn):upgrade,單擊,然后就可以一步一步的完成IIS的升級(jí)了。
? ? ? ? ?在完成IIS升級(jí)之后,一般情況下,godaddy會(huì)把你的所有網(wǎng)站全部移到一個(gè)新的空間,然后給你一個(gè)新的IP地址。并且會(huì)發(fā)郵件告知你需要修改賬戶中所有域名的A記錄。
? ? ? ? ?如果你的域名都是在godaddy中申請(qǐng)的話,那么godaddy會(huì)幫你自動(dòng)把A記錄都修改好,但是如果你的域名不是在godaddy中申請(qǐng)的,那么則你需要到你的域名管理商那里
? ? ? ? ?修改你的A記錄。 在這一切都完成之后,我們不帶數(shù)據(jù)庫(kù)的ASP.NET MVC網(wǎng)頁(yè)就可以在上面運(yùn)行了。
? ? ? ? ?3.數(shù)據(jù)的配置
? ? ? ? ?如果你的網(wǎng)站時(shí)動(dòng)態(tài)的,那么你就需要在godaddy賬戶中創(chuàng)建一個(gè)你想要的數(shù)據(jù)庫(kù),4GH可以支持server 2008 R2版本的數(shù)據(jù)庫(kù)。之前都是server 2005的。
? ? ? ? ?具體的創(chuàng)建步驟可以參照:http://hostbus.net/forum.php?mod=forumdisplay&fid=62這里面應(yīng)該都有。
? ? ? ? ?完成之后,現(xiàn)在到了最關(guān)鍵的一步了,我們?cè)鯓舆B接數(shù)據(jù)庫(kù),放心我的godaddy會(huì)有已經(jīng)生成號(hào)的鏈接代碼:
? ? ? ? ?進(jìn)到數(shù)據(jù)庫(kù)管理頁(yè)面:
? ? ? ? ? ?單擊鉛筆圖標(biāo)進(jìn)入如下頁(yè)面:
? ? ? ? ? 單擊其中的紅色框框部分,就可以查看該數(shù)據(jù)庫(kù)的鏈接字符串了。
? ? ? ? ?Javascript
? ? ? ? ?在進(jìn)行該網(wǎng)站設(shè)計(jì)的時(shí)候,少許用到了寫js,由于對(duì)js也是一知半解,用的不多,平常都只是寫些簡(jiǎn)單的js函數(shù),所以,這里我也要啰嗦一下:
? ? ? ? ?1. 對(duì)于js中函數(shù)的應(yīng)用,例如:functionName和functionName();前者表示的對(duì)函數(shù)的引用,用C語(yǔ)言的話來(lái)說(shuō),就是相當(dāng)于函數(shù)指針差不多的東西。
? ? ? ? ? ? 所以在jquery里面$().click(functName); 這里函數(shù)應(yīng)該是之前已經(jīng)聲明的函數(shù)。這樣,在單擊該個(gè)HTML元素,他就會(huì)執(zhí)行該函數(shù)。
? ? ? ? ?2. 對(duì)于form中的onsubmit事件。
? ? ? ? ? ?首先需要明確的是,form中的onsubmit事件和submit方法,前者是一個(gè)form事件,就跟onclick的性質(zhì)一樣。我們可以為該事件注冊(cè)函數(shù)。而submit則是
? ? ? ? ? ?form進(jìn)行表單提交時(shí)的方法,即只要我們執(zhí)行submit,我們的表單就是進(jìn)行提交。它的響應(yīng)是固定的,我們是不能為其進(jìn)行函數(shù)注冊(cè),因?yàn)樗筒皇且粋€(gè)事件
? ? ? ? ? ?所以我們?cè)谟肑query進(jìn)行form的驗(yàn)證的時(shí)候,就可以這么注冊(cè):$().submit(functionName);一定要記住,這里的submit和進(jìn)行表單提交的submit方法是
? ? ? ? ? ?沒(méi)有任何關(guān)系的。?
? ? ? ? 差不多了!有什么不對(duì)的地方,歡迎大家指點(diǎn)啊!!
? ? ? ? Thank You!Wei!
轉(zhuǎn)載于:https://www.cnblogs.com/thinkanddo/archive/2011/12/19/2293399.html
總結(jié)
以上是生活随笔為你收集整理的ASP.NET MVC2+MSSQL+Godaddy的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 敏捷开发团队管理系列之三:程序与测试团队
- 下一篇: 【分析总结】ASP.NET中的状态管理原