2008年1月11日 星期五

安全性例外狀況

問題:
當我們在IIS下建立一個位於unc路徑下的虛擬目錄,而這個目錄下放的是ASP.NET的程式,這時候就會出現以下的錯誤訊息。

安全性例外狀況

描述: 應用程式嘗試執行安全原則不允許的作業。如果要授與這個應用程式所需的權限,請聯繫您的系統管理員,或在組態檔中變更這個應用程式的信任層級。
例外詳細資訊: System.Security.SecurityException: 型別 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 的使用權限要求失敗。
原始程式錯誤:

在執行目前 Web 要求期間,產生未處理的例外狀況。如需有關例外狀況來源與位置的資訊,可以使用下列的例外狀況堆疊追蹤取得。

Try to delete all assembly that referenced in this web project and
recompile them. This error may occur when there is some assembly builded
in previous version of ASP.NET.

原因:
在.NET Framework的程式碼存取安全性上預設是不允許執行任何非本機上的程式(組件), 如果有需要執行非本機上的.NET應用程式,則必須在Runtime安全性原則內加入信任這些程式的安全性原則。

解決方法:
1.[開始]->[控制台]->[系統管理工具]->[Microsoft .NET Framework 1.1 設定]
2.選擇透過[Runtime 安全性原則]
3.設定"增加組件的信任"
4.選[對這部電腦進行變更]
5.選取所要套用的組件(Code-Behide或其他非.NET Framework組件)
6.將組件的信任層級設定為[完全信任]
7.重覆此動作將所要新增的組件一一加入

0 意見:

張貼留言