盡管Windows2003號稱安全性有很大突破,默認支持.net架構,而拋棄使用了很久的大眾化的Asp的路線卻飽受質疑,需要我們手動去配置很多東西。 在IIS6.0 中,默認設置是特別嚴格和安全的,這樣可以最大限度地減少因以前太寬松的超時和限制而造成的攻擊。比如說默認配置數據庫屬性實施的最大 ASP 張貼大小為 204,800 個字節(jié),并將各個字段限制為 100 KB。在IIS 6.0 之前的版本中,沒有張貼限制。導致很多應用系統往2003移植經常會出錯。現將在移植的過程中常見問題的解決方案匯總如下。
一、不支持ASP
Windows Server 2003 默認安裝,是不安裝 IIS6 的,需要另外安裝()。安裝完 IIS 6,還需要單獨開啟對于ASP 的支持。
第一步,啟用Asp:控制面板->管理工具-> IIS(Internet 服務器) -Web服務擴展 -> Active Server Pages ->允許;控制面板 -> 管理工具 ->IIS(Internet 服務器)- Web服務擴展 -> 在服務端的包含文件 -> 允許
第二步,啟用父路徑支持:IIS具體站點-屬性-主目錄-配置-選項-啟用父路徑
第三步,權限分配:IIS具體站點-(右鍵)權限-Users完全控制
二、最大只能上載200K
先在服務里關閉IIS Admin Service服務,打開Windows\system32\inesrv\下的metabase.xml,找到ASPMaxRequestEntityAllowed 把他修改為需要的值,然后重啟IIS Admin Service服務。 (企業(yè)版windows2003該值在第592行)
AspMaxRequestEntityAllowed=204800 即200K;將其加兩個0,即改為20M
AspMaxRequestEntityAllowed=20480000
三、授權 Internet 匿名用戶寫權限
1、網站的虛擬目錄“屬性”=>目錄安全性=>“編輯”=> “啟用匿名用戶”
2、網站的文件目錄“屬性”=>安全=>添加=>高級=>立即查找,選中在 IIS 中“啟用匿名用戶”,賦予其修改文件夾及文件的權限,并將文件夾“只讀”屬性去掉。(默認 Internet 匿名用戶叫:Iusr_gd,“gd”為本計算機名)
錯誤類型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 操作必須使用一個可更新的查詢。
/up/feedback.asp, 第 33 行
如果你確認你的寫入數據的代碼沒有錯誤,那就是這個文件夾沒有寫權限,這通常是ntfs分區(qū)造成的??梢酝ㄟ^給EveryOne/Users/ IUSR_GD完全控制權限得到解決。
[注意: 如果你的系統是XP,請先點“工具”----“文件夾選項”----“查看”-----去掉“使用簡單文件共享”前的勾,確定后,文件夾“屬性”對話框中才會有“安全性”這一個選項卡]
四、Http500內部錯誤
主要是由于iwam賬號(在我的計算機即是iwam_gd賬號)的密碼錯誤造成了http 500內部錯誤。
1、原因分析
iwam賬號是安裝IIS6時系統自動建立的一個內置賬號,主要用于啟動進程之外的應用程序的internet信息服務。iwam賬號的名字會根據每臺計算機netbios名字的不同而有所不同,通用的格式是iwam_machine,即由“iwam”前綴、連接線“_”加上計算機的netbios名字組成。我計算機的netbios名字是gd,因此我的計算機上iwam賬號的名字就是iwam_gd,這一點與iis匿名賬號iusr_machine的命名方式非常相似。
iwam賬號建立后被active directory、iis metabase數據庫和com+應用程序三方共同使用,賬號密碼被三方分別保存,并由操作系統負責這三方保存的iwam密碼的同步工作。當三方iwam賬號所用密碼不統一時,就會造成http 500內部錯誤。
2、解決辦法
知道了導致http 500內部錯誤的原因,解決起來就比較簡單了,那就是人工同步iwam賬號在active directory、iis metabase數據庫和com+應用程序中的密碼。
具體操作分三步,均需要以管理員身份登錄計算機以提供足夠的操作權限(iwam賬號以iwam_gd為例)
(一) 更改active directory中iwam_gd賬號的密碼
因iwam賬號的密碼由系統控制,隨機產生,我們并不知道是什么,為完成下面兩步的密碼同步工作,我們必須將iwam賬號的密碼設置為一個我們知道的值。
·選擇“開始”->“程序”->“管理工具”->"active directory用戶和計算機",啟動“active directory用戶和計算機”管理單元。
·單擊“user”,選中右面的“iwam_gd”,右擊選擇“重設密碼(t)...”,在跳出的重設密碼對方框中給iwam_gd設置新的密碼,這兒我們設置成“win2003”(沒有引號的),確定,等待密碼修改成功。
(二) 同步iis metabase中iwam_gd賬號的密碼
隨iis6提供了一個管理腳本adsutil.vbs,這個腳本位于c:\inetpub\adminscripts子目錄下(位置可能會因你安裝iis6時設置的不同而有所變動)。
將iis metabase中iwam_gd賬號的密碼修改為“win2003”的命令就是:
c:\inetpub\adminscripts>adsutil set w3svc/wamuserpass " win2003"
修改成功后,系統會有如下提示: wamuserpass: (string) " win2003"
(三) 同步com+應用程序所用的iwam_gd的密碼
同步com+應用程序所用的iwam_gd的密碼,我們有兩種方式可以選擇:一種是使用組件服務mmc管理單元,另一種是使用iwam賬號同步腳本synciwam.vbs。
A、使用組件服務mmc管理單元
·啟動組件服務管理單元:選擇“開始”->“運行”->“mmc”,啟動管理控制臺,打開“添加/刪除管理單元”對話框,將“組件服務”管理單元添加上。
·找到“組件服務”->“計算機”->“我的電腦”->“com+應用程序”->“out-of-process pooled applications”,右擊“out-of-process pooled applications”->“