欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Bin 和 App_Code 文件夾介紹

 更新時(shí)間:2007年04月13日 00:00:00   作者:  
如果您的 Web 應(yīng)用程序包括要在多個(gè)頁(yè)之間共享的代碼,您可以將代碼保存在 Web 應(yīng)用程序根目錄下的兩個(gè)特殊文件夾(Bin 文件夾和 App_Code 文件夾)中的某個(gè)文件夾中。

Bin 文件夾

可以在 Bin 文件夾中存儲(chǔ)編譯的程序集,并且 Web 應(yīng)用程序任意處的其他代碼(如頁(yè)代碼)會(huì)自動(dòng)引用該文件夾。典型的示例是您為自定義類編譯好的代碼。您可以將編譯后的程序集復(fù)制到 Web 應(yīng)用程序的 Bin 文件夾中,這樣所有頁(yè)都可以使用這個(gè)類。

Bin 文件夾中的程序集無(wú)需注冊(cè)。只要 .dll 文件存在于 Bin 文件夾中,ASP.NET 就可以識(shí)別它。如果您更改了 .dll 文件,并將它的新版本寫(xiě)入到了 Bin 文件夾中,則 ASP.NET 會(huì)檢測(cè)到更新,并對(duì)隨后的新頁(yè)請(qǐng)求使用新版本的 .dll 文件。

Bin 文件夾的安全性

將編譯后的程序集放入 Bin 文件夾中會(huì)帶來(lái)安全風(fēng)險(xiǎn)。如果是您自己編寫(xiě)和編譯的代碼,那么您了解代碼的功能。但是,如果不是您自己編寫(xiě)和編譯的代碼,那么您必須像對(duì)待任何可執(zhí)行代碼一樣來(lái)對(duì)待 Bin 文件夾中已編譯的代碼。在完成代碼測(cè)試并確信已了解代碼功能之前,要對(duì)已編譯的代碼保持謹(jǐn)慎的態(tài)度。

請(qǐng)注意以下安全方面的知識(shí),這些知識(shí)與是否將已編譯的代碼放入 Bin 文件夾有關(guān):

Bin 文件夾中程序集的作用范圍為當(dāng)前應(yīng)用程序。因此,它們無(wú)法訪問(wèn)當(dāng)前 Web 應(yīng)用程序之外的資源或調(diào)用當(dāng)前 Web 應(yīng)用程序之外的代碼。

運(yùn)行時(shí),程序集的訪問(wèn)級(jí)別由本地計(jì)算機(jī)上指定的信任級(jí)別確定。 

如果您使用了諸如 Visual Studio 這樣的設(shè)計(jì)器,那么 Bin 文件夾中的代碼運(yùn)行所在的上下文與運(yùn)行時(shí)不同。例如,代碼可能以完全信任狀態(tài)運(yùn)行。 

App_Code 文件夾

可以在 App_Code 文件夾中存儲(chǔ)源代碼,在運(yùn)行時(shí)將會(huì)自動(dòng)對(duì)這些代碼進(jìn)行編譯。Web 應(yīng)用程序中的其他任何代碼都可以訪問(wèn)產(chǎn)生的程序集。因此,App_Code 文件夾的工作方式與 Bin 文件夾很類似,不同之處是您可以在其中存儲(chǔ)源代碼而非已編譯的代碼。App_Code 文件夾及其在 ASP.NET Web 應(yīng)用程序中的特殊地位使您可以創(chuàng)建自定義類和其他僅源代碼文件,并在 Web 應(yīng)用程序中使用它們而不必單獨(dú)對(duì)它們進(jìn)行編譯。

App_Code 文件夾可以包含以傳統(tǒng)類文件(即帶有 .vb、.cs 等擴(kuò)展名的文件)的形式編寫(xiě)的源代碼文件。但是,它也可以包含并非明確顯示出由某一特定編程語(yǔ)言編寫(xiě)的文件。例如 .wsdl(Web 服務(wù)發(fā)現(xiàn)語(yǔ)言)文件和 XML 架構(gòu) (.xsd) 文件。ASP.NET 可以將這些文件編譯成程序集。

根據(jù)您的需要,App_Code 文件夾可以包含任意數(shù)量的文件和子文件夾。您可以采用任何您認(rèn)為方便的方式組織源代碼,ASP.NET 仍會(huì)將所有代碼編譯成單個(gè)程序集,并且 Web 應(yīng)用程序任意處的其他代碼都可以訪問(wèn)該程序集。

推斷 App_Code 文件夾的編程語(yǔ)言

App_Code 文件夾并未顯式標(biāo)記為包含以任何一種編程語(yǔ)言編寫(xiě)的文件。相反,ASP.NET 是根據(jù) App_Code 文件夾所包含的文件來(lái)推斷應(yīng)為 App_Code 文件夾調(diào)用哪一種編譯器。如果 App_Code 文件夾包含 .vb 文件,則 ASP.NET 使用 Visual Basic 編譯器;如果包含 .cs 文件,則 ASP.NET 使用 C# 編譯器,以此類推。

如果 App_Code 文件夾只包含并未明確表明編程語(yǔ)言的文件(如 .wsdl 文件),則 ASP.NET 將使用 Web 應(yīng)用程序的默認(rèn)編譯器,默認(rèn)編譯器在 Web 應(yīng)用程序或計(jì)算機(jī)配置文件的 <compilation> 元素中確定。

在 App_Code 文件夾中使用多種編程語(yǔ)言

因?yàn)?nbsp;App_Code 文件夾中的源代碼要編譯成單個(gè)程序集,所以 App_Code 文件夾中的所有文件必須使用相同的編程語(yǔ)言編寫(xiě)。例如,App_Code 文件夾不能同時(shí)包含采用 Visual Basic 和 C# 編寫(xiě)的源代碼。 

但是,您可以對(duì) Web 應(yīng)用程序進(jìn)行配置,使其將 App_Code 文件夾的子文件夾作為獨(dú)立的可編譯單元處理。這樣,每一個(gè)文件夾就可以包含以不同編程語(yǔ)言編寫(xiě)的源代碼。通過(guò)在 Web.config 文件的 <compilation> 元素中創(chuàng)建一個(gè) <codeSubDirectories> 元素,然后添加一個(gè)對(duì)子文件夾的引用,即可指定該配置。下面的示例闡釋如何對(duì)名為 VBCode 和 CSCode 的子文件夾進(jìn)行配置,使其編譯成不同的程序集:

<compilation debug="false"> <codeSubDirectories> <add directoryName="VBCode" /> <add directoryName="CSCode" /> </codeSubDirectories></compilation>

請(qǐng)注意,對(duì) VBCode 和 CSCode 子文件夾的引用并未包括任何有關(guān)子文件夾中所包含的編程語(yǔ)言的信息。就像對(duì)待 App_Code 文件夾本身一樣,ASP.NET 會(huì)根據(jù)子文件夾中的文件來(lái)推斷要使用的編譯器。

App_Code 文件夾的安全性

App_Code 文件夾中的代碼存在的安全問(wèn)題基本上與 Bin 文件夾中的代碼存在的安全問(wèn)題相同 - 代碼都要編譯成程序集并在運(yùn)行時(shí)執(zhí)行。比 Bin 文件夾要好一些的是,您可以閱讀 App_Code 文件夾中文件的源代碼。但是,如果您不能完全理解代碼,仍然會(huì)存在安全風(fēng)險(xiǎn)。因此,對(duì)待 App_Code 文件夾中的源代碼的態(tài)度必須像對(duì)待基于同樣的源代碼生成的已編譯代碼一樣謹(jǐn)慎。

相關(guān)文章

最新評(píng)論