项目开发过程中遇到的一些问题和解决办法(逐渐添加)
最近在項目開發的過程中自己遇到一些問題也有項目組的MM問的一些問題,這里列出了相應的解決方法,可能并不全面,但應該有些參考意義,有些是google出來的,也有一些是自己摸索出來的,有中文的,也有英文的.
1.? "System.Security.SecurityException: 安全錯誤"在 ASP.NET 中該虛擬目錄指向遠程共享時出現錯誤信息
癥狀
當您使用指向遠程共享來承載 Microsoft 基于 ASP.NET 的應用程序的一個虛擬目錄時,您可能會收到與以下之一類似的錯誤消息:
消息 1
安全異常描述: 應用程序試圖執行安全策略不允許的操作。 若要授予該應用程序所需的權限請與您的系統管理員聯系或更改配置文件中的應用程序的信任級別。
異常詳細信息: System.Security.SecurityException: 安全錯誤。
源錯誤:
行 30: private 靜態 bool __intialized = false; 行 31: 行 32: 公用 Global_asax() {行 33: 如果 ((ASP.Global_asax.__intialized == false)) {行 34: ASP.Global_asax.__intialized = true;
郵件 2
中的服務器錯誤 / ApplicationName 應用程序。
分析器錯誤說明: 該請求提供服務所需資源的分析時遇到錯誤。 請檢查下列特定分析錯誤詳細信息并適當地修改您的源文件。
分析器錯誤信息: 無法無法加載類型 ApplicationName.Global。
源錯誤: 行 1: < %@ 應用程序 codebehind="Global.asax.cs"Inherits ="ApplicationName.Global"%> 源文件:Path of Application \global.asax 行: 1
原因
System.Web 命名空間不具有 AllowPartiallyTrustedCallersAttribute 屬性 應用于。 有關更多信息,請訪問下面的 Microsoft Developer Network (MSDN) Web 站點:
http://msdn2.microsoft.com/en-us/library/ms994923.aspx (http://msdn2.microsoft.com/en-us/library/ms994923.aspx)
不在 My_Computer_Zone 代碼組不具有此屬性中的任何代碼要求具有 FullTrust 用戶權限。 因此,包含 Web 應用程序內容的遠程共享需要 FullTrust。
解決方案
若要解決此問題,授予 FullTrust 權限到遠程共享:
| 1)????? 在 Web 服務器上, 打開管理工具,然后雙擊 Microsoft .NET Framework 配置 。 | |
| 2)????? 展開 運行庫安全策略 ,展開 計算機 ,然后展開 代碼組 。 | |
| 3)????? 用鼠標右鍵單擊 All _ Code ,然后單擊 新建 。 | |
| 4)????? 選擇 創建新的代碼組 。 為您的代碼組指定一個相關名稱,如應用程序共享的名稱。 單擊 下一步 。 | |
| 5)????? 在 選擇條件類型對此代碼組 列表,選擇 URL 。 | |
| 6)????? 在 URL 框,鍵入以下列格式共享的路徑: 7)????? file:\\ computername \ sharename \ * 8)????? 注意 computername 替換為承載遠程共享計算機的名稱。 sharename 替換為共享的名稱。 | |
| 9)????? 單擊 下一步 。 在下一頁上, 選擇 使用現有權限集 ,然后選擇 FullTrust 。 | |
| 10)?? 單擊 下一步 ,然后單擊 完成 。 | |
| 11)?? 重新啟動 Microsoft Internet 信息服務 (IIS) 重新啟動 ASP.NET 輔助進程。 |
如果 Microsoft .NET Framework 配置 則不會顯示在 管理工具 下,您可以安裝 .NET Framework SDK 將 Microsoft .NET Framework 配置 。 此外,您可以運行以下命令,以使更改:
Drive: \WINDOWS\Microsoft.NET\Framework\v2.0.50727\caspol.exe-m-ag 1-url"file:\\ computername \ sharename \ *"上的排他 FullTrust-
注意 有關這些參數做什么的信息,運行以下命令:
caspol.exe-?
?
在這種配置,運行 ASP.NET 工作進程帳戶必須有足夠的權限來遠程共享。 您可以設置在 Machine.config 文件中使用 Processmodel 標記在輔助進程運行帳戶
?
重現該問題的步驟
| 1)????? 創建一個新的虛擬目錄指向遠程共享。 | |
| 2)????? 創建一個應用程序為虛擬目錄。 確保連接到該共享用戶具有對遠程內容的讀訪問。 | |
| 3)????? 在 Machine.config 文件的 Processmodel 標記,用戶更改為域用戶具有列表,讀取,和在遠程共享上執行權限。 | |
| 4)????? 創建嵌入式.aspx 文件,然后將文件放在遠程共享。 | |
| 5)????? 發出一個請求頁。 |
2.???? SecurityException: Requested registry access is not allowed
?
1)????? Give the ASPNET user permission to read the Security eventlog registry entry.
Run regedit
Navigate to the following key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security
Right click on this entry and select Permissions
Add the ASPNET user
Give it Read permission
?
2)????? ?Change settings in machine.config file
Run Explorer
Navigate to WINDOWS or WINNT folder
Open Microsoft.NET folder
Open Framework folder
Open v1.1.4322 folder (folder name may be different, depending on what dotnet version is installed)
Open CONFIG folder
Open machine.config file using notepad (make a backup of this file first)
Locate processmodel tag (approx. at line 441)
Locate userName="machine" (approx. at line 452)
Change it to userName="SYSTEM"
Save and close the file
Close Explorer
?
3)????? Restart IIS
Run IISReset
?
如果這個方案不行的話,在第一步修改注冊表的時候,以下兩個為備選方案:、
1. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Security
右鍵選擇權限->添加? Network Service 帳號,選擇Full Control
2. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog
右鍵選擇權限->添加? IUSR_machinename,選擇FullControl
?
再重得以上2,3步驟
3.???? Service Unavaible
您瀏覽一個 Windows SharePoint Services Web 站點時,您可能會收到下面的錯誤信息:
Service Unavailable
原因
如果 Microsoft Internet 信息服務 (IIS) 6.0 中沒有正確地配置用于虛擬服務器的應用程序池,就可能會發生此問題。此問題可能會在存在下列一種或多種情況時發生: ?應用程序池沒有運行。
?應用程序池帳戶使用的密碼不正確。
?應用程序池帳戶不是服務器上的 IIS_WPG 和 STS_WPG 這兩個組的公共成員。
解決方案
要解決此問題,請按照下列步驟操作:
1.?????? 驗證是否已為虛擬服務器配置了應用程序池。默認的應用程序池是 MSSharePointPortalAppPool
請按照下列步驟來確定虛擬服務器正在使用的應用程序池
1)????? 單擊“開始”,指向“管理工具”,然后單擊“Internet 信息服務 (IIS) 管理器”。. 展開“ServerName”,
2)????? 展開“Web 站點”,右鍵單擊虛擬服務器,然后單擊“屬性”。
3)????? 單擊“主目錄”選項卡。為虛擬服務器配置的應用程序池列在“應用程序池”框中。
4)????? 單擊“確定”。
2.?????? 驗證應用程序池帳戶使用的密碼是否正確
IIS 不會自動輪詢 Active Directory 目錄服務中的密碼更改。如果應用程序池帳戶是一個域帳戶,其密碼已過期,則在為此帳戶重新指定一個新密碼后,您可能會收到本文“癥狀”部分所描述的錯誤信息。
請按照下列步驟來驗證應用程序池帳戶所用的密碼是否正確:
1)????? 在 Internet 信息服務 (IIS) 管理器中,展開“應用程序池”
2)????? 右鍵單擊為虛擬服務器配置的應用程序池(例如,右鍵單擊“MSSharePointPortalAppPool”),然后單擊“屬性
3)????? ?單擊“標識”選項卡
4)????? 在“密碼”框中,鍵入列在“用戶名”框中的應用程序池帳戶所用的密碼,然后單擊“確定”
在“確認密碼”對話框中,再次鍵入密碼,然后單擊“確定”
3.?????? 驗證應用程序池帳戶是服務器上的 IIS_WPG 組和 STS_WPG 組的成員
根據您的具體情況選用下列方法之一
A.????? 在成員服務器上安裝了 SharePoint Portal Server 的情況下:
1)????? 單擊“開始”,指向“管理工具”,然后單擊“計算機管理”
2)????? 展開“本地用戶和組”,然后展開“用戶”
3)????? 右鍵單擊虛擬服務器的應用程序池使用的帳戶,然后單擊“屬性”
4)????? 單擊“成員屬于”選項卡
驗證 IIS_WPG 和 STS_WPG 是否都出現在“成員屬于”列表中。如果其中之一沒有列出或者兩者均未列出,請根據具體情況將 IIS_WPG 組、STS_WPG 組或者這兩個組添加到列表中。
B.????? 在域控制器上安裝了 SharePoint Portal Server 的情況下:
1)????? 啟動“Active Directory 用戶和計算機”
2)????? 展開“用戶”
3)????? 右鍵單擊虛擬服務器的應用程序池使用的帳戶,然后單擊“屬性”
4)????? 單擊“成員屬于”選項卡
驗證 IIS_WPG 和 STS_WPG 都出現在“成員屬于”列表中。
如果其中之一沒有列出或者兩者均未列出,請根據具體情況將 IIS_WPG 組、STS_WPG 組或者這兩個組添加到列表中。
4.?????? 重新啟動 IIS 以回收應用程序池:
1)????? 在 Internet 信息服務 (IIS) 管理器中,右鍵單擊“ServerName”,指向“所有任務”,然后單擊“重新啟動 IIS”
2)????? 單擊“在 ServerName 上重新啟動 Internet 信息服務”,然后單擊“確定”
?
?
?
?
轉載于:https://www.cnblogs.com/qiangzi0303/archive/2008/09/24/1298117.html
總結
以上是生活随笔為你收集整理的项目开发过程中遇到的一些问题和解决办法(逐渐添加)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ajax常见问题汇总(二)
- 下一篇: 真人3D Avatar