(1)配置Asp.net站點(diǎn)ISS報(bào)出:服務(wù)器應(yīng)用程序不可用.具體異常信息如下:
服務(wù)器應(yīng)用程序不可用
您試圖在此 Web 服務(wù)器上訪問(wèn)的 Web 應(yīng)用程序當(dāng)前不可用。請(qǐng)點(diǎn)擊 Web 瀏覽器中的“刷新”按鈕重試您的請(qǐng)求。
管理員注意事項(xiàng): 詳述此特定請(qǐng)求失敗原因的錯(cuò)誤信息可在 Web 服務(wù)器的系統(tǒng)事件日志中找到。請(qǐng)檢查此日志項(xiàng)以查明導(dǎo)致該錯(cuò)誤發(fā)生的原因。
我檢查ISS上其他的配置.發(fā)現(xiàn)全部都是Asp編寫(xiě)的網(wǎng)站.屬性中查看運(yùn)行的環(huán)境竟是Asp.net Framework 1.1版本. 我修改成了.NET FrameWork2.0版本.結(jié)果出現(xiàn)這個(gè)錯(cuò)誤提示.
(1)一般情況下.NET2.0和.NET1.1在程序池公用時(shí)就會(huì)出現(xiàn)"服務(wù)器應(yīng)用程序不可用"這個(gè)異常.其實(shí)是進(jìn)程池調(diào)用沖突的問(wèn)題,如果訪問(wèn)的兩個(gè)應(yīng)用程序,分別是2.0 和1.1, 而且他們共用一個(gè)進(jìn)程池,
IIS 無(wú)法同時(shí)將其解析2種版本,就會(huì)出現(xiàn)如上的錯(cuò)誤.
解決問(wèn)題辦法:修改其中之一的進(jìn)程池, 如把 2.0的應(yīng)用程序的進(jìn)程池改為 ASP.NET 2.0 . 即可
(2)方法二:重新注冊(cè)IIS, NET\Framework\v2.0.50727里的aspnet_regiis.exe 運(yùn)行它,重新注冊(cè)一下.net aspnet_regiis.exe -u 先卸載 aspnet_regiis.exe -i 重新安裝 有時(shí)候重啟一下服務(wù)器就好了.
有時(shí)按照上面的兩種方法配置.還會(huì)報(bào)出同樣的異常.接著查看一下系統(tǒng)事件日志.來(lái)看看報(bào)出異常具體信息.這是在11-10日10點(diǎn)這個(gè)時(shí)段服務(wù)器上系統(tǒng)事件日志:
其中詳細(xì)信息:
1:由于無(wú)法創(chuàng)建應(yīng)用程序域,因此未能執(zhí)行請(qǐng)求。錯(cuò)誤: 0x80070005 拒絕訪問(wèn)。
2:未能初始化 AppDomain:/LM/W3SVC/1635210705/Root Exception: System.IO.FileLoadException
Message: 未能加載文件或程序集“System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一個(gè)依賴(lài)項(xiàng)。拒絕訪問(wèn)
谷歌一下找到一個(gè)合理的解決方案:
1:安裝2.0之后,在IIS的虛擬目錄的屬性設(shè)置中會(huì)多出一個(gè)ASP.NET標(biāo)簽,在那里邊把運(yùn)行時(shí)調(diào)整為2.0,默認(rèn)使用的是1.1的運(yùn)行時(shí)。
2:這個(gè)是權(quán)限問(wèn)題,首先檢查應(yīng)用程序池的屬性,看看它是以什么用戶(hù)身份運(yùn)行的,一般是NETWORK SERVICE 然后確保這個(gè)用戶(hù)對(duì).NET Framework 2.0的目錄有訪問(wèn)權(quán)限,事實(shí)上應(yīng)該是有的。目錄是systemroot:\Windows\Microsoft.NET\Frameworks \2.0.xxxx .如果以上兩條都對(duì),很不幸,你遇到了一個(gè)很奇怪的問(wèn)題,我上次是把應(yīng)用程序池的用戶(hù)身份改成本地系統(tǒng)來(lái)運(yùn)行的。按照第二種解決方案配置: 把運(yùn)行池的訪問(wèn)用戶(hù)設(shè)置為"本地系統(tǒng)", 然后運(yùn)行程序, 錯(cuò)誤沒(méi)在出現(xiàn), 成功解決,
當(dāng)然現(xiàn)在站點(diǎn)有的設(shè)計(jì)Silverlight集成開(kāi)發(fā)用的.NET環(huán)境是3.5版本的.安裝后.net FrameWork3.5SP1后.在屬性中Asp.net一欄中依然只是1.1和2.0. 有人就問(wèn)為什么沒(méi)有3.5?
從官方治療找到:3.5是基于2.0的 所以IIS里邊只有2.0. 3.5相對(duì)2.0只是增加了一些類(lèi)型庫(kù).他們的JIT是相同的所以IIS只需要2.0就可以了 沒(méi)有必要存在3.5.3.5的運(yùn)行的還是基于2.0上邊
(2)在SQL腳本時(shí)用T-sql插入漢字時(shí)出現(xiàn)亂碼類(lèi)似(????)等.如圖.
下午處理幾個(gè)版本更新。需要更新服務(wù)器上SQl2005的數(shù)據(jù)庫(kù).我通過(guò)Visor生成數(shù)據(jù)庫(kù)腳本執(zhí)行時(shí)遇到漢字.就出現(xiàn)類(lèi)似(???)亂碼. 在網(wǎng)上一直沒(méi)有找好成型解決方案.于是乎就對(duì)比著SQL2000版本原版數(shù)據(jù)庫(kù)屬性.發(fā)現(xiàn)在排序規(guī)則上有一定出入.SQL2005上默認(rèn)的數(shù)據(jù)庫(kù)排序規(guī)則是:SQL_Latin1_General_CP1_CI_AS,如圖.
這就是導(dǎo)致亂碼原因所在.將排序規(guī)則由默認(rèn)的SQL_Latin1_General_CP1_CI_AS修改為Chinese_PRC_CI_AS. 或在利用T_SQL語(yǔ)句在創(chuàng)建時(shí)執(zhí)行:ALTER DATABASE BasicDB COLLATE Chinese_PRC_90_CI_AS
注意:在修改時(shí)該數(shù)據(jù)庫(kù)對(duì)應(yīng)的屬性時(shí)必須關(guān)閉與該數(shù)據(jù)庫(kù)所有的對(duì)外連接.否則導(dǎo)致修改不成功.然后通過(guò)重啟SQL服務(wù)生效.
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com