了解ASP.NET Web應(yīng)用程序模型
有的asp.net程序員說(shuō):Web.config文件?我從來(lái)沒(méi)有聽(tīng)說(shuō)過(guò)啊,可是我寫(xiě)的程序不是也能很正常的運(yùn)轉(zhuǎn)嗎?是的,你說(shuō)得沒(méi)錯(cuò),沒(méi)有Web.config文件程序是可以正常運(yùn)行的。但是,如果你做了一個(gè)大型的網(wǎng)站,需要對(duì)整個(gè)網(wǎng)站做一些整體配置,例如整個(gè)網(wǎng)站的頁(yè)面使用何種語(yǔ)言編寫(xiě)的、網(wǎng)站的安全認(rèn)證模式、Session信息存儲(chǔ)方式等,這時(shí)你就需要使用Web.config文件了。雖然Web.config文件中的某些選項(xiàng)是可以通過(guò)IIS配置的,但是如果在Web.config中也有相應(yīng)的設(shè)置就會(huì)覆蓋掉IIS中的配置。而且,Web.config文件的***的便利之處就是可以在asp.net頁(yè)面中通過(guò)調(diào)用System.web名字空間訪問(wèn)Web.config中的設(shè)置。
ASP.NET Web.config有兩種,分別是服務(wù)器配置文件和Web應(yīng)用程序配置文件,他們都名為Web.config。在這個(gè)配置文件中會(huì)保存當(dāng)前IIS服務(wù)器中網(wǎng)頁(yè)的使用哪種語(yǔ)言編寫(xiě)的、應(yīng)用程序安全認(rèn)證模式、Session信息存儲(chǔ)方式的一系列信息。這些信息是使用XML語(yǔ)法保存的,如果想對(duì)其編輯,使用文本編輯器就行了。
其中服務(wù)器配置文件會(huì)對(duì)IIS服務(wù)器下所有的站點(diǎn)中的所有應(yīng)用程序起作用。在.NET Framework 1.0中,服務(wù)器的Web.config文件是存在:\WinNT\Microsoft.NET\Framework\v1.0.3705中的。
而ASP.NET Web應(yīng)用程序配置文件Web.config則保存在各個(gè)Web應(yīng)用程序中。例如:當(dāng)前網(wǎng)站的根目錄\Inetpub\wwwroot,而當(dāng)前的Web應(yīng)用程序?yàn)镸yApplication,則Web應(yīng)用程序根目錄就應(yīng)為:\Inetpub\wwwroot\MyApplication。如果你的網(wǎng)站有且只有一個(gè)Web應(yīng)用程序,一般說(shuō)來(lái)應(yīng)用程序的根目錄就是\Inetpub\wwwroot。如果想添加一個(gè)Web應(yīng)用程序,在IIS中添加一個(gè)具有應(yīng)用程序起始點(diǎn)的虛擬目錄就行了。這個(gè)目錄下的文件及目錄將被視為一個(gè)Web應(yīng)用程序。但是,這樣通過(guò)IIS添加Web應(yīng)用程序是不會(huì)為你生成Web.config文件的。如果想創(chuàng)建一個(gè)帶有Web.config文件的Web應(yīng)用程序,需要使用Visual Studio.NET,新建一個(gè)Web應(yīng)用程序項(xiàng)目。
ASP.NET Web應(yīng)用程序的配置文件Web.config是可選的,可有可無(wú)。如果沒(méi)有,每個(gè)Web應(yīng)用程序會(huì)使用服務(wù)器的Web.config配置文件。如果有,則會(huì)覆蓋服務(wù)器Web.config配置文件中相應(yīng)的值。
在asp.net中,Web.config修改保存后會(huì)自動(dòng)立刻成效,不用再像ASP中的配置文件修改后需要重新啟動(dòng)Web應(yīng)用程序才能生效了。
【編輯推薦】