程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> ASP.NET基礎 >> asp.net服務器上幾種常見異常的解決方案.

asp.net服務器上幾種常見異常的解決方案.

編輯:ASP.NET基礎
如下

(1)配置Asp.net站點ISS報出:服務器應用程序不可用.具體異常信息如下:

 服務器應用程序不可用
您試圖在此 Web 服務器上訪問的 Web 應用程序當前不可用。請點擊 Web 浏覽器中的“刷新”按鈕重試您的請求。
管理員注意事項: 詳述此特定請求失敗原因的錯誤信息可在 Web 服務器的系統事件日志中找到。請檢查此日志項以查明導致該錯誤發生的原因。

我檢查ISS上其他的配置.發現全部都是Asp編寫的網站.屬性中查看運行的環境竟是Asp.net Framework 1.1版本. 我修改成了.NET FrameWork2.0版本.結果出現這個錯誤提示.

(1)一般情況下.NET2.0和.NET1.1在程序池公用時就會出現"服務器應用程序不可用"這個異常.其實是進程池調用沖突的問題,如果訪問的兩個應用程序,分別是2.0 和1.1, 而且他們共用一個進程池,
IIS 無法同時將其解析2種版本,就會出現如上的錯誤.

解決問題辦法:修改其中之一的進程池, 如把 2.0的應用程序的進程池改為 ASP.NET 2.0 . 即可

(2)方法二:重新注冊IIS, NET\Framework\v2.0.50727裡的aspnet_regiis.exe 運行它,重新注冊一下.net aspnet_regiis.exe -u 先卸載 aspnet_regiis.exe -i 重新安裝 有時候重啟一下服務器就好了.

有時按照上面的兩種方法配置.還會報出同樣的異常.接著查看一下系統事件日志.來看看報出異常具體信息.這是在11-10日10點這個時段服務器上系統事件日志:

其中詳細信息:

 

1:由於無法創建應用程序域,因此未能執行請求。錯誤: 0x80070005 拒絕訪問。
2:未能初始化 AppDomain:/LM/W3SVC/1635210705/Root    Exception: System.IO.FileLoadException
Message: 未能加載文件或程序集“System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或它的某一個依賴項。拒絕訪問
 

谷歌一下找到一個合理的解決方案:

1:安裝2.0之後,在IIS的虛擬目錄的屬性設置中會多出一個ASP.NET標簽,在那裡邊把運行時調整為2.0,默認使用的是1.1的運行時。  

2:這個是權限問題,首先檢查應用程序池的屬性,看看它是以什麼用戶身份運行的,一般是NETWORK SERVICE    然後確保這個用戶對.NET Framework 2.0的目錄有訪問權限,事實上應該是有的。目錄是systemroot:\Windows\Microsoft.NET\Frameworks \2.0.xxxx .如果以上兩條都對,很不幸,你遇到了一個很奇怪的問題,我上次是把應用程序池的用戶身份改成本地系統來運行的。按照第二種解決方案配置: 把運行池的訪問用戶設置為"本地系統", 然後運行程序, 錯誤沒在出現, 成功解決,

當然現在站點有的設計Silverlight集成開發用的.NET環境是3.5版本的.安裝後.net FrameWork3.5SP1後.在屬性中Asp.net一欄中依然只是1.1和2.0. 有人就問為什麼沒有3.5?

從官方治療找到:3.5是基於2.0的 所以IIS裡邊只有2.0. 3.5相對2.0只是增加了一些類型庫.他們的JIT是相同的所以IIS只需要2.0就可以了 沒有必要存在3.5.3.5的運行的還是基於2.0上邊

(2)在SQL腳本時用T-sql插入漢字時出現亂碼類似(????)等.如圖.

 

下午處理幾個版本更新。需要更新服務器上SQl2005的數據庫.我通過Visor生成數據庫腳本執行時遇到漢字.就出現類似(???)亂碼. 在網上一直沒有找好成型解決方案.於是乎就對比著SQL2000版本原版數據庫屬性.發現在排序規則上有一定出入.SQL2005上默認的數據庫排序規則是:SQL_Latin1_General_CP1_CI_AS,如圖.

這就是導致亂碼原因所在.將排序規則由默認的SQL_Latin1_General_CP1_CI_AS修改為Chinese_PRC_CI_AS. 或在利用T_SQL語句在創建時執行:ALTER DATABASE BasicDB COLLATE Chinese_PRC_90_CI_AS

注意:在修改時該數據庫對應的屬性時必須關閉與該數據庫所有的對外連接.否則導致修改不成功.然後通過重啟SQL服務生效.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved