1. 程式人生 > >Asp.net網站部署時遇到的一些問題

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,再選擇左側的使用者對映,右側勾選要訪問的資料庫

完了,終於可以出現首頁了。