Asp.net網站部署時遇到的一些問題
很少部署網站,這幾天有一個網站幫朋友部署,期間遇到一些問題,經查找各種網絡資源,最終解決,先將遇到的問題及解決辦法分享一下。
系統 Win7+iis7.5+sqlserver2008+.Net 4.0
啟動IIS,運行->Inetmgr,或者在我的電腦右鍵->管理,左側選擇IIS管理器
在IIS管理器左側樹節點上找到 “網站” 節點,右鍵->添加網站,進行基本的設置
IP地址下拉框,可以選擇自己的機器IP。
設置好后,啟動網站:在建好的MyWeb節點上,右鍵->管理網站->啟動
打開IE,輸入http://192.168.0.1:80/Login.aspx
第一個問題出現:
HTTP Error 500.19 - Internal Server Error 配置錯誤: 不能在此路徑中使用此配置節。如果在父級別上鎖定了該節,便會出現這種情況。鎖定是默認設置的(overrideModeDefault="Deny"),或者是通過包含 overrideMode="Deny" 或舊有的 allowOverride="false" 的位置標記明確設置的。 出現這個錯誤是因為 IIS 7 采用了更安全的 web.config 管理機制,默認情況下會鎖住配置項不允許更改。要取消鎖定可以運行命令行 %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers 。其中的 handlers 是錯誤信息中紅字顯示的節點名稱。 如果modules也被鎖定,可以運行%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
注意:cmd.exe要以管理員身份啟動,在c:\windows\system32下找到cmd.exe,右鍵管理員啟動,輸入上面的命令即可。
繼續輸入網址
第二個問題出現:
無法識別的屬性“targetFramework”,在我的web.config中有<compilation debug="true" targetFramework="4.0">,不認識4.0的.net。
在IIS管理器左側選擇“應用程序池”節點,看到右側列表中有一列 .Net Framework版本,默認你那里應該顯示是v2.0

雙擊這列,在彈出界面中選擇 .net 4.0
繼續訪問,出現第三個問題(IIS 7.5 HTTP 錯誤 404.3 - Not Found)
解決方法如下,打開控制面板,選擇程序,在選擇默認程序,選擇左下角的“程序和功能”

在打開的頁面選擇“打開或關閉Windows功能”

然后按下圖將“ASP.Net”勾選

繼續訪問,錯誤又現
HTTP 錯誤 500.21 - Internal Server Error 處理程序“PageHandlerFactory-Integrated”在其模塊列表中有一個錯誤模塊“ManagedPipelineHandler”
原因分析:在安裝FrameWorkv4.0后在安裝IIS6,導致Framework沒有安裝完全
解決方案:只需要重新安裝一下就可以了.在Frameworv4.0的目錄中安裝的程序以管理員權限重新運行一下就可以了.執行以下命令:
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
繼續錯誤
用戶 'IIS APPPOOL\IdealTest' 登錄失敗
原因,web.config文件中的數據庫連接使用的是windows身份驗證
<add connectionString="server=DEVIL-PC;database=mydatabase;Integrated Security=True" name="ConnectionString" />
在IIS管理器左側選擇“應用程序池”節點,看到右側列表中有一列 標識,默認你那里應該顯示是ApplicationPoolIdentity,選擇你的網站,右鍵高級設置,改變設置為NetWorkService
下一個問題
用戶 NT AUTHORITY\NETWORK SERVICE 登錄失敗
解決辦法,打開數據庫,看看是不是有這個用戶,如果沒有自己添加一下
雙擊這個用戶,在彈出界面中左側選擇服務器角色,右側可以勾選public和sysadmin,再選擇左側的用戶映射,右側勾選要訪問的數據庫
完了,終於可以出現首頁了。
HTTP Error 500.19 - Internal Server Error 配置錯誤: 不能在此路徑中使用此配置節。如果在父級別上鎖定了該節,便會出現這種情況。鎖定是默認設置的 (overrideModeDefault="Deny"),或者是通過包含 overrideMode="Deny" 或舊有的 allowOverride="false" 的位置標記明確設置的。
出現這個錯誤是因為 IIS 7 采用了更安全的 web.config 管理機制,默認情況下會鎖住配置項不允許更改。要取消鎖定可以運行命令行 %windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/handlers 。其中的 handlers 是錯誤信息中紅字顯示的節點名稱。
如果modules也被鎖定,可以運行%windir%\system32\inetsrv\appcmd unlock config -section:system.webServer/modules
另外,如果使用Asp.net的朋友,在安裝IIS7的時候一定記得勾選Asp.net,默認不選,也會出現類似的錯誤信息
錯誤二:
![]()
HTTP 錯誤 500.19 - Internal Server Error 無法訪問請求的頁面,因為該頁的相關配置數據無效。
原文件夾,右擊選擇它的屬性,打開“安全”選項卡,看到“組或用戶 名”,單擊“編輯”按鈕添加一個新的用戶名“Everyone”,然后更改它的權限,將第二個權限“修改”設置為允許就可以了。
詳細錯誤信息模塊 IIS Web Core 通知 BeginRequest 處理程序 尚未確定 錯誤代碼 0x80070005 配置錯誤 由於權限不足而無法讀取配置文件