麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

ASP.NET 網站中的共享代碼文件夾

2019-11-17 03:36:37
字體:
來源:轉載
供稿:網友

asp.net 網站中的共享代碼文件夾

如果您的 Web 應用程序包括要在多個頁之間共享的代碼,您可以將代碼保存在 Web 應用程序根目錄下的兩個特殊文件夾(Bin 文件夾和 App_Code 文件夾)中的某個文件夾中。當您創建這些文件夾并在其中存儲特定類型的文件時,ASP.NET 將使用特殊方式處理這些文件。

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

Bin 文件夾中的程序集無需注冊。只要 .dll 文件存在于 Bin 文件夾中,ASP.NET 就可以識別它。如果您更改了 .dll 文件,并將它的新版本寫入到了 Bin 文件夾中,則 ASP.NET 會檢測到更新,并對隨后的新頁請求使用新版本的 .dll 文件。

Bin 文件夾的安全性
將編譯后的程序集放入 Bin 文件夾中會帶來安全風險。如果是您自己編寫和編譯的代碼,那么您了解代碼的功能。但是,您必須像對待任何可執行代碼一樣來對待 Bin 文件夾中已編譯的代碼。在完成代碼測試并確信已了解代碼功能之前,要對已編譯的代碼保持謹慎的態度。

請注意以下安全方面的知識,這些知識與是否將已編譯的代碼放入 Bin 文件夾有關:

Bin 文件夾中程序集的作用范圍為當前應用程序。因此,它們無法訪問當前 Web 應用程序之外的資源或調用當前 Web 應用程序之外的代碼。

運行時,程序集的訪問級別由本地計算機上指定的信任級別確定。有關更多信息,請參見 ASP.NET 信任級別和策略文件。

如果您使用了諸如 Visual Studio 這樣的設計器,那么 Bin 文件夾中的代碼運行所在的上下文與運行時不同。例如,代碼可能以完全信任狀態運行。

App_Code 文件夾
可以在 App_Code 文件夾中存儲源代碼,在運行時將會自動對這些代碼進行編譯。Web 應用程序中的其他任何代碼都可以訪問產生的程序集。因此,App_Code 文件夾的工作方式與 Bin 文件夾很類似,不同之處是您可以在其中存儲源代碼而非已編譯的代碼。App_Code 文件夾及其在 ASP.NET Web 應用程序中的特殊地位使您可以創建自定義類和其他僅源代碼文件,并在 Web 應用程序中使用它們而不必單獨對它們進行編譯。

App_Code 文件夾可以包含以傳統類文件(即帶有 .vb、.cs 等擴展名的文件)的形式編寫的源代碼文件。但是,它也可以包含并非明確顯示出由某一特定編程語言編寫的文件。例如 .wsdl(Web 服務描述語言)文件和 xml 架構 (.xsd) 文件。ASP.NET 可以將這些文件編譯成程序集。

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

注意 
在 App_Code 文件夾中不允許使用用戶控件。這包括單文件用戶控件以及使用代碼隱藏模型的用戶控件。將用戶控件置于 App_Code 目錄中會導致不按用戶控件代碼所要求的順序對其進行編譯,因此是不允許的。請注意,不需要將用戶控件置于 App_Code 文件夾中;因為處于應用程序中任何位置的頁都已經可以使用這些控件。
 

推斷 App_Code 文件夾的編程語言
App_Code 文件夾并未顯式標記為包含以任何一種編程語言編寫的文件。相反,ASP.NET 是根據 App_Code 文件夾所包含的文件來推斷應為 App_Code 文件夾調用哪一種編譯器。如果 App_Code 文件夾包含 .vb 文件,則 ASP.NET 使用 Visual Basic 編譯器;如果包含 .cs 文件,則 ASP.NET 使用 C# 編譯器,以此類推。

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

在 App_Code 文件夾中使用多種編程語言
因為 App_Code 文件夾中的源代碼要編譯成單個程序集,所以 App_Code 文件夾中的所有文件必須使用相同的編程語言編寫。例如,App_Code 文件夾不能同時包含采用 Visual Basic 和 C# 編寫的源代碼。

但是,您可以對 Web 應用程序進行配置,使其將 App_Code 文件夾的子文件夾作為獨立的可編譯單元處理。這樣,每一個文件夾就可以包含以不同編程語言編寫的源代碼。通過在 Web.config 文件的 codeSubDirectories 元素中創建一個 compilation 元素,然后添加一個對子文件夾的引用,即可指定該配置。下面的示例闡釋如何對名為 VBCode 和 CSCode 的子文件夾進行配置,使其編譯成不同的程序集:

 復制代碼
<compilation debug="false">
<codeSubDirectories>
<add directoryName="VBCode" />
<add directoryName="CSCode" />
</codeSubDirectories>
</compilation>對 VBCode 和 CSCode 子文件夾的引用并不需要包括任何有關子文件夾中所包含的編程語言的信息。就像對待 App_Code 文件夾本身一樣,ASP.NET 會根據子文件夾中的文件來推斷要使用的編譯器。

App_Code 文件夾的安全性
App_Code 文件夾中的代碼存在的安全問題基本上與 Bin 文件夾中的代碼存在的安全問題相同 - 代碼都會在運行時編譯成程序集。比 Bin 文件夾要好一些的是,您可以閱讀 App_Code 文件夾中文件的源代碼。但是,如果您不能完全理解代碼,仍然會存在安全風險。因此,對待 App_Code 文件夾中的源代碼的態度必須像對待基于同樣的源代碼生成的已編譯代碼一樣謹慎。
摘自:http://msdn2.microsoft.com/zh-cn/library/t990ks23(VS.80).aspx


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日韩精品99久久久久久 | 国产99久久久久久免费看 | 草草影院地址 | 日日草夜夜操 | 欧美成人高清在线 | 一级一级一级毛片 | 成人国产精品一区 | 欧美一级特黄a | av噜噜在线 | 欧美成人激情在线 | 精品一区二区6 | 性大片1000免费看 | 海角在线观看91一区二区 | 一区二区三区日韩精品 | 黄污免费网站 | 日韩精品中文字幕在线观看 | 黄色av网站在线观看 | 污版视频在线观看 | 欧美成人一区二区三区 | 老女人碰碰在线碰碰视频 | 男女羞羞的视频 | 看毛片电影 | 国产91成人| 国产精品成人一区二区三区电影毛片 | 一级性生活视频 | 欧美性猛交一区二区三区精品 | 日韩av电影免费看 | 一级黄色性感片 | 国产免费最爽的乱淫视频a 毛片国产 | 在线a毛片免费视频观看 | 精品久久久久久久久久久久 | 欧美福利视频一区二区三区 | 91快色 | 欧美大穴| 国产一区精品在线观看 | 久久艹一区| 亚洲一级成人 | 一级毛片播放 | 日本一区视频在线观看 | 亚洲免费毛片基地 | 日韩高清电影 |