一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

ASP.NET 保留文件夾詳解

1. Bin文件夾
Bin文件夾包含應用程序所需的,用于控件、組件或者需要引用的任何其他代碼的可部署程序集。該目錄中存在的任何.dll文 件將自動地鏈接到應用程序。如果在該文件夾中留有不用的或過期的文件,則可能出現“二義性引用(ambiguous reference)”異常的風險。換句話說,如果兩個不同的程序集定義相同的類(相同的命名空間和名稱),則ASP.NET運行庫不能決定應該使用哪一 個程序集,從而拋出一個異常。在開發時,當我們重新命名一個項目或一個程序集的名稱時,這是常見的錯誤。為了避免這種錯誤,一定不要在該文件夾中保留任何 不必要的程序集,或者至少要從配置文件的<assemblies>節中刪除如下代碼行:
<add assembly="*" />
在表1.10所列的所有文件夾中,只有Bin可以被ASP.NET 1.x應用程序識別。該文件夾是強制性的。
2. App_Browser文件夾
該可選的文件夾包含.browser文件。.browser文件描述瀏覽器(不管是移動設備瀏覽器,還是臺式機瀏覽器)的特 征和功能。ASP.NET在安裝路徑下的Config/Browser文件夾中安裝了大量.browser文件,這些文件供所有應用程序共享。我們只是把 當前應用程序特有的瀏覽器文件放在App_Browser文件夾下。.browser文件的內容即時動態地進行編譯,以便向ASP.NET運行庫提供最新 的瀏覽器信息。
讓我們簡單談談擁有一個自定義的.browser文件可能有幫助的場景。設想應用程序使用了一個在某個瀏覽器下不能有效呈現的控件。在指定的瀏覽器中顯示宿主頁面時,可以編寫一個.browser文件,迫使ASP.NET使用一個不同的適配器來生成該控件。
<browsers>
<browser id="browserID">
<controlAdapters>
<adapter controlType="Samples.CustomControl"
adapterType="Samples.Adapters.CustomControlAdapter" />
</controlAdapters>
</browser>
</browsers>
假設browserID與ASP.NET識別的標準瀏覽器之一相匹配,則上文所示的.browser文件指示在指定的瀏覽器下使用CustomControlAdapter呈現CustomControl。
3. App_Code文件夾
App_Code文件夾正好在Web應用程序根目錄下,其存儲所有應當作為應用程序的一部分動態編譯的類文件。這些類文件自 動鏈接到應用程序,而不需要在頁面中添加任何顯式指令或聲明來創建依賴性。App_Code文件夾中放置的類文件可以包含任何可識別的ASP.NET組件 ――自定義控件、輔助類、build提供程序、業務類、自定義提供程序、HTTP處理程序等。
注意 在開發時,對App_Code文件夾的更改會導致整個應用程序重新編譯。對于大型項目,這可能不受歡迎,而且很耗時。為此,鼓勵大家將代碼進行模塊化處理 到不同的類庫中,按邏輯上相關的類集合進行組織。應用程序專用的輔助類大多應當放置在App_Code文件夾中。
App_Code文件夾中存放的所有類文件應當使用相同的語言。如果類文件使用兩種或多種語言編寫,則必須創建特定語言的子目錄,以包含用每種語言編寫的類。一旦根據語言組織這些類文件,就要在web.config文件中為每個子目錄添加一個設置:
<compilation>
<codeSubDirectories>
<add directoryName="VBFolder" />
</codeSubDirectories>
</compilation>
重要的是,特定語言的子目錄應在web.config文件中注冊,否則,不管它們屬于哪個文件夾,App_Code文件夾下 的所有文件將被編譯成一個單獨的程序集。上述配置腳本描述了這么一種情況,即所有的C#文件都放在App_Code文件夾的根目錄下,而把幾個 Visual Basic .NET類文件移入VBFolder目錄中。如果<codeSubDirectories>節中提到的目錄不存在,則會收到一個編譯錯誤提 示。
App_Code根文件夾中的文件被編譯成App_Code_xxx.dll程序集,其中xxx是隨機生成的字符序列。一個 給定子目錄中的文件將被編譯成一個名為App_SubCode_xxx_yyy.dll的動態創建的程序集,其中xxx指示子目錄的名稱,而yyy是一個 隨機字符序列。只有在應用程序根目錄中的web.config文件中進行了設置,<codeSubDirectories>節才有效。
在App_Code目錄或任何其他子目錄中放置一個assemblyinfo.cs文件,可以創建一個強命名的程序集。顯然,如果該文件夾包含Visual Basic .NET文件,那么將使用assemblyinfo.vb文件。程序集配置文件可以引用一個.snk文件來保存強名稱的密鑰。
注意 給一個程序集設置一個強名稱,首先必須獲得一個公開/私有密鑰對。通過使用強名稱(Strong Name)工具(sn.exe),可以獲得這樣一個密鑰對。強名稱工具是我們可以在.NET Framework的安裝路徑中發現的SDK binary之一。密鑰對文件通常有一個.snk擴展名。可以將該文件保存到一個應用程序文件夾中,并在assemblyinfo.cs文件中引用它,如下所示:
[assembly: AssemblyKeyFileAttribute(@"yourKeyPair.snk")]
注意,Visual Basic .NET是在包含Visual Studio Solution的目錄中尋找密鑰文件,而C#編譯器則在包含該binary的目錄中尋找密鑰文件。據此可知,用此屬性調整我們使用的路徑,或者把密鑰文件放在合適的文件夾中。
在隨后發生的任何重新生成中,程序集的名稱將發生變化。同時,老的AppDomain請求一結束,就刪除老的程序集。
App_Code文件夾并非只能包含類文件。特別是,它可以包含并能自動地處理代表數據架構的XSD文件。把一個XSD文件 添加到該文件夾中時,編譯器將把它解析成一個有類型的DataSet類,并將它添加到應用程序作用域中。在ASP.NET 1.x中,這一工作由Visual Studio .NET向導,使用一個命令行實用程序(xsd.exe)完成的。
注意 使用web.config文件注冊一個組件(例如,一個自定義的服務器控件或一個自定義的HTTP處理程序)時,通常要求指定包含該代碼的程序集名稱。如 果該組件定義在App_Code文件夾中,則應該用什么名稱來指示程序集?在這種情況下,只是忽略程序集信息,并規定完整的類名即可。如果沒有規定任何程 序集,則ASP.NET運行庫將試圖從任何已裝載的程序集中裝入該類,包括為App_Code文件夾動態創建的程序集。
4. App_Data文件夾
App_Data文件夾應該包含應用程序的本地數據存儲。它通常以文件(諸如Microsoft Access或Microsoft SQL Server Express數據庫、XML文件、文本文件以及應用程序支持的任何其他文件)形式包含數據存儲。該文件夾內容不由ASP.NET處理。該文件夾是ASP.NET提供程序存儲自身數據的默認位置。
注意 默認ASP.NET帳戶被授予對文件夾的完全訪問權限。如果碰巧要改變ASP.NET帳戶,一定要確保新帳戶被授予對該文件夾的讀/寫訪問權。

AspNet技術ASP.NET 保留文件夾詳解,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产欧美性综合视频性刺激 | 特黄aaaaaa久久片 | www.碰| 亚洲国产成人精彩精品 | 337p欧洲亚洲大胆艺术 | 中文字幕av在线 | 加勒比一区 | 色就色欧美 | 国产视频精品免费 | 美女掰开逼 | eeuss影院www在线观看手机 | 国产精品伦理久久久久久 | 91视频免费观看高清观看完整 | 成人精品亚洲人成在线 | 看全色黄大色大片免费久久久 | 伊人久久综在合线亚洲不卡 | 久久国产欧美日韩高清专区 | 91老师国产黑色丝袜在线 | 国产视频久| 成年人福利视频 | 亚洲综合色一区二区三区另类 | 国产一区二区成人 | 久久er精品视频 | 国产精品二 | 国产成人精品综合网站 | 免费一区二区三区四区 | 国产精品专区第二 | 免费99精品国产自在现线观看 | 91久久国产精品视频 | 精品久久亚洲一级α | 精品久久中文字幕有码 | 亚洲精品女同中文字幕在线 | 精品国精品国产自在久国产不卡 | 国产激爽大片高清在线观看 | 国产成人精品一区二区三在线观看 | 亚州一区二区 | 亚洲免费精品视频 | 国产高清精品91在线 | 久久伊人久久亚洲综合 | 国产在线精品一区二区三区 | 亚洲综合插插 |