[ASP]在Windows 2008中,使用ObjectContext.Item("Response")會有424「此處需要物件」錯誤的解決方式
前言
在Windows 2003上Run得粉正常的asp程式搬到了Windows 2008 Run時,卻發生了Error Number:424, Error Description:此處需要物件的錯誤!
研究
Dim objASP As ObjectContext
Dim rsp As Object
Set objASP = GetObjectContext()
Set rsp = objASP.Item("Response")
發現錯誤是發生在 Set rsp = objASP.Item("Response") 這行! 參考如何在Windows 2008 R2 上的IIS7.5執行ASP,並且可使用COM+?
做法是要將元件服務中的Class屬性中->進階的Tab中->IIS支援(允許IIS內建內容(T))勾選起來就可以了!
多加上圖示說明如下,
2013/07/31 補充
事隔多年後的今天,有個客戶要將windows 2003移機到windows 2008 環境上,結果又發生了一樣的錯誤!
一直想不起來到底是那裡的問題。後來檢視程式碼後,就記起來了。
以下補充詳細的錯誤訊息,
'/TRV3' 應用程式中發生伺服器錯誤。
________________________________________
此處需要物件
描述: 在執行目前 Web 要求的過程中發生未處理的例外情形。請檢閱堆疊追蹤以取得錯誤的詳細資訊,以及在程式碼中產生的位置。
例外詳細資訊: System.Runtime.InteropServices.COMException: 此處需要物件
原始程式錯誤:
行 356: Call objTbl.Show(lngPageNo, intAlign, intSortType, strTableAttr, blnShowHeader, blnToString, blnShowPageControlLine)
原始程式檔: ASPGrid20.aspx 行: 356
堆疊追蹤:
[COMException (0x800a01a8): 此處需要物件]
Microsoft.VisualBasic.CompilerServices.LateBinding.InternalLateCall(Object o, Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack, Boolean IgnoreReturn) +796
Microsoft.VisualBasic.CompilerServices.LateBinding.LateCall(Object o, Type objType, String name, Object[] args, String[] paramnames, Boolean[] CopyBack) +23
ASP.fnASPGRIDByArrSrc(Object vntCtlFld, Object strTitle, Object vntData, Object aryParentID, Object aryCatalogID, Object aryCaption, Object aryCaptionAttr, Object arySortOrder, Object aryIsHidden, Object aryFormatString, Object aryTDAttr, Object aryNeedSuppress, Object aryScriptCode, Object intKeyIndex)
in ASPGrid20.aspx:356
Hi,
亂馬客Blog已移到了 「亂馬客 : Re:從零開始的軟體開發生活」
請大家繼續支持 ^_^