国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

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

iis7+的虛擬目錄:未能加載程序集“**”。請確保在訪問該頁之前已經編譯了此程序集

2019-11-17 01:49:44
字體:
來源:轉載
供稿:網友

iis7+的虛擬目錄:未能加載程序集“**”。請確保在訪問該頁之前已經編譯了此程序集

在使用win8系統后,突然想運行iis,于是在windows組件中啟用iis,并aspnet_regiis.exe -i注冊iis后,于是開始發布了一個站點,一切正常

繼而,在該站點下添加虛擬目錄,然后預覽虛擬目錄的網頁,就會立刻報類似“未能加載程序集“App_Web_utohcdb4”。請確保在訪問該頁之前已經編譯了此程序集。”的錯誤

我納悶了,我記得在以前版本的iis上建立一個虛擬目錄是何其的簡單并且不會出錯,搜索后發現,原來右擊網站,有了兩個選下個“添加應用程序”和“添加虛擬目錄”

繼續搜了下兩者異同(源自:http://blog.csdn.net/xiaoqijun/article/details/16523811)

A.虛擬目錄 虛擬目錄是指在站點下建立一個虛擬子目錄,指定一個固定的物理路徑做為站點的應用路徑。 1. 虛擬目錄與父級站點共用一個應用程序池 例如:站點TestWeb(c:/Inetpub/wwwroot/TestWeb)下建立了SubTestA(D:/SubTestA)的虛擬目錄 若TestWeb為設定了Framework V2.0,則SubTestA也必須是Framework V2.0的應用程序,否則將給帶來Framework不匹配的各種錯誤。 2. 虛擬目錄必須將可執行文件(dll等)放置在父級站點的bin目錄下。 3. 虛擬目錄中的web.config文件繼承父級站點的web.config. 就是說如果父級站點聲明過的引用,在虛擬目錄下的web.config中不應重復聲明 4. 虛擬目錄中的應用其根目錄為父級站點的根目錄 5. 虛擬目錄中的AppSetting.config設置應使用相對路徑來進行引用。B. 應用程序 應用程序是指在父級目錄下建立了一個單獨的應用程序,獨享應用程序池 1. 應用程序可以與父級站點擁有不同的應用程序池 即可以達到TestWeb為Framework V2.0,而SubTestA可以是Framework V4.0,二者互不影響 2. SubTestA的可執行文件獨立的放置在根目錄下的bin中,不能放置在WebTest的bin目錄中 3. SubTestA的web.config獨立于WebTest的web.config(之前說SubTestA的web.config獨立于WebTest的web.config其實是不對的,測試發現就算添加應用程序也會繼承站點下的web.config,除非配置禁止繼承) 4.SubTestA中的應用其根目錄為父級站點的根目錄 5.虛擬目錄中的AppSetting.config設置應使用相對路徑來進行引用。應用程序是建立在虛擬目錄的基礎之上,而應用程序獨立于父級站點擁有獨立的程序運行機制,這讓同一站點擁有了運行不同框架集而不相互影響的能力實際運用中需要根據不同的情況來選擇虛擬目錄或應用程序考慮到我只是需要某網站的一個映射網址,兩個發布文件沒有任何關系,也不想公用任何config或者dll文件于是還是老實的“添加應用程序”來解決問題吧于是,我還是不甘心,去iis網站配置文件applicationHost.config(C:/Windows/System32/inetsrv/config)中查看到部分內容(publish和test2.0是添加的虛擬目錄,test2.0_是添加的應用程序)對應配置如下:<sites> <site name="Default Web Site" id="1"> <application path="/"> <virtualDirectory path="/" physicalPath="%SystemDrive%/inetpub/wwwroot" /> </application> <bindings> <binding asp.net/test 2.0/publish2.0" /> <virtualDirectory path="/publish" physicalPath="F:/asp.net/html5拖拽上傳/test/publish" /> </application> <application path="/test2.0_" applicationPool="test1.0"> <virtualDirectory path="/" physicalPath="F:/asp.net/test 2.0/publish2.0" /> </application> <bindings> <binding protocol="http" bindingInformation="192.168.1.107:8080:" /> </bindings> </site> <siteDefaults> <logFile logFormat="W3C" directory="%SystemDrive%/inetpub/logs/LogFiles" /> <traceFailedRequestsLogging directory="%SystemDrive%/inetpub/logs/FailedReqLogFiles" /> </siteDefaults> <applicationDefaults applicationPool="DefaultAppPool" /> <virtualDirectoryDefaults allowSubDirConfig="true" /> </sites>很清楚的看到,site(站點),application(應用程序),virtualDirectory(虛擬目錄)的層次關系,并可以說明為:一個site中可以有一個或者多個application,一個application中可以有一個或者多個virtual directory,而一個virtual directory則對應著一個物理路徑。一個site默認會至少有一個application,稱為根應用程序(root application)或者默認應用程序(default application),而一個application至少有一個vitual director,稱為根虛擬目錄(root virtual directory)也許在早版本的iis中,例如iis6,應用程序和虛擬目錄是沒有太大嚴格區分的,在IIS7以上,這三者則被規范化起來,在IIS架構層面上明確了三者的層次關系。具體可以參考:http://www.cr173.com/html/18969_1.html所以添加應用程序,本質上還是為其配置一個虛擬目錄,根據path和 physicalPath很清楚的知道,iis是如何幫我們映射物理路徑的
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 水富县| 大田县| 宜宾市| 苏尼特右旗| 礼泉县| 顺昌县| 绥芬河市| 龙南县| 宽甸| 泰安市| 鄂托克旗| 纳雍县| 辛集市| 珠海市| 堆龙德庆县| 济南市| 修武县| 巫山县| 东莞市| 南召县| 乌拉特中旗| 昌乐县| 石林| 钦州市| 西青区| 武宣县| 喜德县| 肥乡县| 界首市| 西充县| 云梦县| 荆门市| 佛山市| 堆龙德庆县| 门头沟区| 汾阳市| 藁城市| 福州市| 深泽县| 安义县| 玛沁县|