前幾天幫人調試一個ASP+SQL2000+IIS5.1/6.0的網站程序,調試過程中遇到的問題如下:
一、 SQLServer登錄
原先存在備份數據庫,通過附加數據庫導入到SQL Server,原網站數據庫不能正常登陸。並且已在安全中添加用戶角色。賦予管理員權限以及數據庫所有者權限。發現角色添加有問題,檢查原因,原導入數據庫中包含一個用戶角色,去掉後再添加即可。
嘗試登陸,仍然報錯:未與信任的SQL連接。選擇屬性—〉安全性,修改身份驗證為:Windows和SQL Server。或修改注冊表:
HKEY_LOCAL_MacHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode的值決定了SQL Server將采取何種身份驗證模式。
1、表示使用"Windows 身份驗證"模式
2、表示使用混合模式(Windows 身份驗證和 SQL Server 身份驗證).後正常登陸。
二、 IIS5的http 500內部服務器錯誤
主要錯誤表現就是ASP程序不能浏覽但Html靜態網頁不受影響,查詢網絡屬於“IWAM賬號在ActiveDirectory、IIS metabase數據庫和COM+應用程序三處的密碼無法同步”問題,解決方法參考網絡嘗試(括號內為嘗試結果和處理):
手動修改:(我按照步驟但是手動修改並沒有成功,郁悶)
1、 重新設置IIS的IWAM賬號密碼。右鍵單擊 我的電腦->管理,打開計算機管理界面打開 本地用戶和組->用戶 右鍵單擊 啟動IIS進程帳號 IWAM_****(注:****一般是計算機名)點擊設置密碼,設置為一個你想要的密碼。
2、 同步IIS metabase中IWAM_MYSERVER的密碼,在CMD中:c:\inetpub\adminscripts>adsutil set w3svc/wamuserpass "yourpassWord"也可:選擇"站點 屬性"->目錄安全性標簽->編輯"匿名訪問和驗證控制"->在彈出的框中選中匿名訪問,單擊編輯按鈕->用戶名浏覽,選擇IWAM_MacHINE,密碼框中輸入同一的密碼,選中"允許IIS控制密碼"->確定。
注意:
在WIN2000中,查看到的密碼為星號,若要不為星號,必須要先修改adsutil.vbs文件。
a.到c盤 inetpub\adminscripts找到adsutil.vbs (根據裝系統時設定的不同,有的路徑可能不一樣)
b.右鍵單擊,用記事本打開
c.查找 IsSecurePRoperty = True注意=前後各有一個空格
d.將 IsSecureProperty = True 改為 IsSecureProperty = False
獲取 IWAM 帳戶密碼命令: cscript.exe adsutil.vbs get w3svc/wamuserpass
獲取 IUSR 帳戶密碼命令: cscript.exe adsutil.vbs get w3svc/anonymoususerpass
輸入以上命令,按回車可分別查看IWAM和IUSR的密碼。
修改密碼命令:
修改 IWAM 帳戶密碼 cscript.exe adsutil.vbs set w3svc/wamuserpass "passWord"
修改 IUSR 帳戶密碼 cscript.exe adsutil.vbs set w3svc/anonymoususerpass "passWord"
passWord 設置為你想修改的密碼,即與第一步中你設置的用戶IWAM_****的相同,按回車即可修改完成。
修改密碼前請一定停止所有的Internet信息服務,否則後面可能會出錯,並且IWAM帳戶可能會被鎖定。
3、 同步COM+應用程序所用的IWAM_MYSERVER密碼,在CMD中:c:\inetpub\adminscripts>cscript synciwam.vbs –v。不成功。也可:
(1)啟動組件服務管理單元: “運行”->“mmc”,啟動管理控制台,打開“添加/刪除管理單元”對話框,將“組件服務”管理單元添加上。
(2)找到“組件服務”->“計算機”->“我的電腦”->“com+應用程序”->“out-of-process pooled applications”,右擊“out-of-process pooled applications”->“屬性”。
(3)切換到“out-of-process pooled applications”屬性對話框的“標識”選項卡。選擇“此用戶”,浏覽,選擇用戶名“IWAM_MacHINE”。這些都是缺省的。在下面的“密碼”和“確認密碼”文本框內輸入正確的密碼,確定退出。
(4)系統如果提示“應用程序被一個以上的外部產品創建。你確定要被這些產品支持嗎?”時確定即可。
(5)如果在IIS中將其它一些web的“應用程序保護”設置為“高(獨立的)”,那麼這個web所使用的com+應用程序的iwam賬號密碼也需要同步。
但是在進行第三步操作時總是報8004e00f錯誤。進入組件服務,查看組件服務/計算機/我的電腦/COM+應用程序,結果報錯"COM+ 無法與 Microsoft 分布式事務協調程序交談",無法查看裡面的對象。在事件查看器中msdtc服務沒有正常啟動。解決方法:運行 msdtc -resetlog
最後解決:"COM+ 無法與 Microsoft 分布式事務協調程序交談"在安裝了Windows組件中的消息隊列後,就不會出現這個錯誤了,同時"消息隊列"組件又對服務中的"Distributed Transaction Coordinator"(即msdtc服務)有依存關系,這個服務必須啟用,才可以安裝消息隊列組件!消息隊列裝好後,COM+應用程序菜單就可以打開了,表示其已正常工作!如果在這個時候再裝IIS或者把IIS卸載重裝,就正常了!實際上,手工同步密碼太過麻煩,成功率不高!
三、 數據庫中的存儲內容在ASP頁面不解析
問題表現:網頁原來使用正常,但是在使用了一段時間之後很多內容不能正常顯示。
問題分析:開始以為是連接池問題,後來發現沒什麼關系,在頁面上察看源碼已經將數據庫中的內容讀了出來,卻沒有在頁面上展現。發現是出現了"\"符號。這個符號在ASP中被認為是轉義字符的特殊字符,無法解析,故無法正常顯示。