服務器asp.net權限設置問題及解決方法
本人服務器使用環境:WIN 2003
ASP.NET相對於ASP,設置權限方面有點不同,有一點兒設置錯了都運行不到。在網上搜索到的都是很垃圾的答案,沒有一個用得到的,下面是我自己設置並從中遇到的問題摸索後得到的經驗,給大家分享。
ASP.NET需要用到USERS組的權限,因為我也遇過很多次自己設置了權限之後發現網站運行不了,很郁悶。下面根據出現的問題,一點點解決,讓你的ASP.NET運行起來。。
問題一: 未找到路徑“C:\”的一部分。
說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆棧跟蹤信息,以了解有關該錯誤以及代碼中導致錯誤的出處的詳細信息。
異常詳細信息: System.IO.DirectoryNotFoundException: 未找到路徑“C:\”的一部分。
解決:
在C盤加上Users組讀取權限即可
本人試過:在C盤加上Users讀取權限後可以訪問了,但出於服務器安全問題,我又把UserS組去掉了(想到應該C盤下面還要一些文件夾要加入UserS權限即可)。去掉USERS組後,相繼的問題以不同的錯誤方式顯示出來了,如下面講到的問題,然後再一一解決。
問題二:
頁面彈出登錄窗口點取消後出現:HTTP 錯誤 401.3 - 未經授權:訪問由於 ACL 對所請求資源的設置被拒絕。
或者出現 HTTP 401.1錯誤
解決:
一,先要檢查你的“身份檢證和訪問控制”中"對匿名使用下列windows用戶賬號”中的用戶密碼是否正確,還有檢查你的網站 右鍵單擊-權限中有沒有加入此中用。
第一種方法試過都還是這的話,就看文件夾的權限設置了
在windows上加上Users權即可
問題三: 如果浏覽到你整個網站出現亂碼
解決:
那應該在 c盤 windows 加上users組的 讀取權限即可
問題四: 編譯錯誤
說明: 在編譯向該請求提供服務所需資源的過程中出現錯誤。請檢查下列特定錯誤詳細信息並適當地修改源代碼。
編譯器錯誤信息: CS0016: 未能寫入輸出文件“c:\windows\Microsoft.NET\work\v1.1.4322\Temporary ASP.NET Files\root\345513e7\86f1794a\fvmzvzp7.dll”--“拒絕訪問。 ”
解決: 應該在 c盤 windows下的temp 加上Users組的讀、寫、修改的權限即可
問題五: 編譯錯誤
說明: 在編譯向該請求提供服務所需資源的過程中出現錯誤。請檢查下列特定錯誤詳細信息並適當地修改源代碼。
編譯器錯誤信息: 編譯器失敗,錯誤代碼為 128。
解決: 應該在 c盤 windows下的System32 加上Users組的讀的權限即可
問題六: 運行時錯誤
說明: 服務器上出現應用程序錯誤。此應用程序的當前自定義錯誤設置禁止遠程查看應用程序錯誤的詳細信息(出於安全原因)。但可以通過在本地服務器計算機上運行的浏覽器查看。
詳細信息: 若要使他人能夠在遠程計算機上查看此特定錯誤信息的詳細信息,請在位於當前 Web 應用程序根目錄下的“web.config”配置文件中創建一個 <customErrors> 標記。然後應將此 <customErrors> 標記的“mode”屬性設置為“Off”。
<!-- Web.Config 配置文件 -->
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
注釋: 通過修改應用程序的 <customErrors> 配置標記的“defaultRedirect”屬性,使之指向自定義錯誤頁的 URL,可以用自定義錯誤頁替換所看到的當前錯誤頁。
<!-- Web.Config 配置文件 -->
<configuration>
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
</system.web>
</configuration>
解決:
在所在站點右鍵點擊-權限 加上 IIS_WPG組的讀權限即可
總 結:
windows temp System32 都需要users 的權限
windows讀 temp讀,寫 System32讀
站站權限要加上IIS_WPG讀取權限
所以服務器的安全性也會低了很多,呵呵,,
問題7
在編譯向該請求提供服務所需資源的過程中出現錯誤。請檢查下列特定錯誤詳細信息並適當地修改源代碼
在VS2005編譯網站內置環境編譯網站的時候出現” 在編譯向該請求提供服務所需資源的過程中出現錯誤。請檢查下列特定錯誤詳細信息並適當地修改源代碼 “這個錯誤,到網上baidu了一下,有下面的解決方案:
修改該目錄的權限,加上“NETWORK SERVICE”,讓它對該目錄有控制權限。
修改網絡/IIS/IIS服務的缺省賬戶.htm">IIS服務的缺省賬戶為“本地系統”
經驗證,方法二可行,方法一失敗。但是方法二會導致IIS運行不安全,所以這種方法不太合適。
我照著方案試了下,都沒有成功,突然想到昨天因為殺毒,裝了mcafee,查看mcafee的日志,果然有一下幾條:
C:\Program Files\Internet Explorer\iexplore.exe \REGISTRY\MACHINE\SOFTWARE\Classes\.torrent\@ 防病毒最大保護:禁止更改所有文件擴展名的注冊
c:\windows\system32\inetsrv\w3wp.exe C:\WINDOWS\TEMP\wda3zurp.dll 通用最大保護:禁止在 Windows 文件夾中創建新的可執行文件
應該就是這裡的毛病了,把上兩條規則刪掉,編譯成功:)
問題8
錯誤 1 “ASP.login_aspx.GetTypeHashCode()”: 沒有找到適合的方法來重寫 c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\clim\22c580cf\181f2416\App_Web_iiv2pnyq.8.cs
錯誤 2 “ASP.login_aspx.ProcessRequest(System.Web.HttpContext)”: 沒有找到適合的方法來重寫 c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\clim\22c580cf\181f2416\App_Web_iiv2pnyq.8.cs
錯誤 3 “ASP.login_aspx”不會實現接口成員“System.Web.IHttpHandler.IsReusable” c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\clim\22c580cf\181f2416\App_Web_iiv2pnyq.8.cs
解決方法:檢查方法名、類名、名稱空間前後是否一致。