remote script文檔(轉(zhuǎn)載自微軟)(七)
更新時間:2007年03月03日 00:00:00 作者:
文檔: 檢查錯誤
當您在服務(wù)器腳本中用 remote scripting 調(diào)用方法時,可能會遇到多種錯誤,包括語法錯誤和運行時間錯誤,以及調(diào)用 remote scripting 方法時的錯誤。remote scripting 調(diào)用機制向您提供了獲知調(diào)用過程中所出現(xiàn)錯誤信息的途徑。
錯誤處理程序根據(jù)您是進行同步或者異步調(diào)用稍微有些不一樣。如果您在進行同步調(diào)用時導(dǎo)致錯誤,那么 remote scripting 機制將在瀏覽器中顯示一條錯誤消息。錯誤文字來自于調(diào)用對象的 message 屬性。有關(guān)詳細信息,請參閱如下的“Remote Scripting 調(diào)用故障診斷”。
不過,如果您產(chǎn)生導(dǎo)致一個錯誤的異步調(diào)用,那么您可以通過指定一個錯誤回調(diào)函數(shù)捕獲該錯誤,該回調(diào)函數(shù)的調(diào)用在很大程度上和普通回調(diào)函數(shù)有相似之處。
捕獲異步調(diào)用中產(chǎn)生的錯誤
您可以指定自己異步 remote scripting 調(diào)用中的錯誤回調(diào)函數(shù)名。由于您必須傳遞該回調(diào)函數(shù)的函數(shù)指針,因此對于異步方法調(diào)用來說,您必須使用 javascript。如果您已經(jīng)創(chuàng)建了對服務(wù)器頁的對象引用,那么可以用第一個語法示例。否則可以用第二個語法示例。
callObject = ASPObject.methodName(p1, p2[,...],
callbackFunction, errorCallbackFunction, context)
callobject = RSExecute(url, methodName, p1, p2[,...],
callbackFunction, errorCallbackFunction, context)
有關(guān)產(chǎn)生對服務(wù)器方法異步調(diào)用的詳細信息,請參閱異步調(diào)用 Remote Scripting 方法。
不管您進行同步還是異步調(diào)用,都可以得到關(guān)于錯誤條件的信息,方法是測試調(diào)用對象的屬性。如果用戶指定了錯誤回調(diào)函數(shù),那么調(diào)用對象就被作為參數(shù)傳遞,就象普通回調(diào)函數(shù)參數(shù)傳遞一樣。特別是下面的屬性提供了錯誤信息:
status 如果遠程調(diào)用失敗則包含 -1。
data 包含服務(wù)器返回的 XML 格式的粗信息。這是調(diào)試的最好信息源,因為它包含了錯誤消息的完整文本以及服務(wù)器生成的其他消息。
message 包含 remote scripting 代理過程生成的錯誤消息信息(如果有的話)。message 中的錯誤消息不必要和 data 屬性中的一樣。例如,如果 ASP 頁包含一條語法錯誤,那么關(guān)于該錯誤的詳細消息將出現(xiàn)在 data 屬性中,但消息屬性將只包含這樣一條消息──它指示用戶不能調(diào)用 ASP 頁上的方法。
下面的腳本示例了客戶腳本中的一個錯誤回調(diào)函數(shù)。第一個腳本產(chǎn)生一個 remote scripting 調(diào)用,并指明錯誤回調(diào)函數(shù)。第二個腳本是錯誤回調(diào)函數(shù)本身。錯誤回調(diào)函數(shù)并不顯式地對調(diào)用對象 status 屬性值進行測試,因為該函數(shù)僅在調(diào)用失敗時才被調(diào)用。
<SCRIPT LANGUAGE="javascript" for="btnSquare" event="onclick">
rsMath = RSGetASPObject("rsadd.asp");
number1 = txt1.value;
context = "squaring";
co = rsMath.square(number1,showResults,showErrors,context);
function showErrors(co){
// 轉(zhuǎn)儲粗數(shù)據(jù)
msg = "The raw data returned by the remote method call is "
msg = msg + co.data
alert(msg);
// 顯示友好信息
msg = "The following error occurred during the "
msg = msg + co.context
msg = msg + " remote scripting call:\n"
msg = msg + co.message
alert(msg);
}
</SCRIPT>
Remote Scripting 調(diào)用故障診斷
找到某個 remote scripting 調(diào)用中的確切錯誤源并不總是一件容易的事情,因為 remote scripting 不僅涉及到客戶而且涉及到服務(wù)器上的多個文件。不過,某些類型的錯誤屬于一般性錯誤,而且容易發(fā)現(xiàn)。另外,用戶可以用 remote scripting 機制的錯誤捕獲程序獲得調(diào)用過程中所出現(xiàn)錯誤的詳細信息。
在某些情況下,用戶不能用 remote scripting 進行任何處理,因為尚未對之進行正確的初始化。下表列出了典型的初始化錯誤及其可能的出錯緣由。
癥狀 可能錯因
Remote scripting 不起作用;客戶頁源僅包含 <APPLET> 標記。 RSEnableRemoteScripting
調(diào)用不在文檔主體內(nèi)。請參閱使得客戶頁內(nèi)的 Remote Scripting 有效。
Remote scripting 不起作用;所有調(diào)用失敗。 ASP 頁未被調(diào)用。使用 http:// 協(xié)議(而不是 file://)。
客戶端錯誤消息,比如當試圖調(diào)用 remote scripting 方法時,出現(xiàn)“未定義 'MSRS' ”消息。 試圖進行遠程調(diào)用之前,未能成功調(diào)用 RSEnableRemoteScripting 方法。
客戶端錯誤消息“對象不支持該屬性或者方法,”特別顯示出和 .HTM 文件不匹配的行號。 找不到代理對象 (Rsproxy.class),或者 RSEnableRemoteScripting 方法中傳遞的是無效 URL。
客戶端錯誤消息“創(chuàng)建文件的 ASP 對象失敗”。 RSGetASPObject 調(diào)用中傳遞的是無效 URL。請參閱作為對象引用 ASP 頁。
如果錯誤位于包含遠程調(diào)用方法的 ASP 頁中,或者如果錯誤出現(xiàn)在對某個遠程方法的調(diào)用過程中,那么用戶可以在某個錯誤回調(diào)函數(shù)中捕獲該錯誤,而且用戶可以從調(diào)用對象的 data 和 message 屬性中獲得關(guān)于錯誤的信息。
下表列出了用戶可以用錯誤回調(diào)函數(shù)捕獲的典型問題以及 message 和 data 屬性中的值。在多數(shù)情況下,message 屬性返回一般性信息,而 data 屬性則包含關(guān)于錯誤的詳細信息。
注意 數(shù)據(jù)屬性包含一定數(shù)目的 XML 標記以及和調(diào)用有關(guān)的其他信息。下表列出了出現(xiàn)在屬性值中的一個字符串。
問題 消息值 數(shù)據(jù)值
RSExecute 方法中 ASP 頁的無效 URL。請參閱同步調(diào)用 Remote Scripting 方法和異步調(diào)用 Remote Scripting 方法 不同的,包括用戶試圖調(diào)用的頁名。 (null)
ASP 文件到 Rs.asp 的路徑錯誤。請參閱使得服務(wù)器頁中的 Remote Scripting 有效。 “調(diào)用的頁不支持 remote scripting。” “未找到包括文件?!?nbsp;
ASP 文件中的語法或者運行時間錯誤。 “調(diào)用的頁不支持 remote scripting。” 和錯誤有關(guān)的細節(jié),包括行號。
試圖調(diào)用不存在的方法。 “不是公用函數(shù)。” “不是公用函數(shù)。”
ASP 構(gòu)造函數(shù)引用了未出現(xiàn)在 ASP 文件中的函數(shù)。請參閱使得服務(wù)器頁中的 Remote Scripting 有效 “調(diào)用的頁不支持 remote scripting。” “functionName未定義。”
當您在服務(wù)器腳本中用 remote scripting 調(diào)用方法時,可能會遇到多種錯誤,包括語法錯誤和運行時間錯誤,以及調(diào)用 remote scripting 方法時的錯誤。remote scripting 調(diào)用機制向您提供了獲知調(diào)用過程中所出現(xiàn)錯誤信息的途徑。
錯誤處理程序根據(jù)您是進行同步或者異步調(diào)用稍微有些不一樣。如果您在進行同步調(diào)用時導(dǎo)致錯誤,那么 remote scripting 機制將在瀏覽器中顯示一條錯誤消息。錯誤文字來自于調(diào)用對象的 message 屬性。有關(guān)詳細信息,請參閱如下的“Remote Scripting 調(diào)用故障診斷”。
不過,如果您產(chǎn)生導(dǎo)致一個錯誤的異步調(diào)用,那么您可以通過指定一個錯誤回調(diào)函數(shù)捕獲該錯誤,該回調(diào)函數(shù)的調(diào)用在很大程度上和普通回調(diào)函數(shù)有相似之處。
捕獲異步調(diào)用中產(chǎn)生的錯誤
您可以指定自己異步 remote scripting 調(diào)用中的錯誤回調(diào)函數(shù)名。由于您必須傳遞該回調(diào)函數(shù)的函數(shù)指針,因此對于異步方法調(diào)用來說,您必須使用 javascript。如果您已經(jīng)創(chuàng)建了對服務(wù)器頁的對象引用,那么可以用第一個語法示例。否則可以用第二個語法示例。
callObject = ASPObject.methodName(p1, p2[,...],
callbackFunction, errorCallbackFunction, context)
callobject = RSExecute(url, methodName, p1, p2[,...],
callbackFunction, errorCallbackFunction, context)
有關(guān)產(chǎn)生對服務(wù)器方法異步調(diào)用的詳細信息,請參閱異步調(diào)用 Remote Scripting 方法。
不管您進行同步還是異步調(diào)用,都可以得到關(guān)于錯誤條件的信息,方法是測試調(diào)用對象的屬性。如果用戶指定了錯誤回調(diào)函數(shù),那么調(diào)用對象就被作為參數(shù)傳遞,就象普通回調(diào)函數(shù)參數(shù)傳遞一樣。特別是下面的屬性提供了錯誤信息:
status 如果遠程調(diào)用失敗則包含 -1。
data 包含服務(wù)器返回的 XML 格式的粗信息。這是調(diào)試的最好信息源,因為它包含了錯誤消息的完整文本以及服務(wù)器生成的其他消息。
message 包含 remote scripting 代理過程生成的錯誤消息信息(如果有的話)。message 中的錯誤消息不必要和 data 屬性中的一樣。例如,如果 ASP 頁包含一條語法錯誤,那么關(guān)于該錯誤的詳細消息將出現(xiàn)在 data 屬性中,但消息屬性將只包含這樣一條消息──它指示用戶不能調(diào)用 ASP 頁上的方法。
下面的腳本示例了客戶腳本中的一個錯誤回調(diào)函數(shù)。第一個腳本產(chǎn)生一個 remote scripting 調(diào)用,并指明錯誤回調(diào)函數(shù)。第二個腳本是錯誤回調(diào)函數(shù)本身。錯誤回調(diào)函數(shù)并不顯式地對調(diào)用對象 status 屬性值進行測試,因為該函數(shù)僅在調(diào)用失敗時才被調(diào)用。
<SCRIPT LANGUAGE="javascript" for="btnSquare" event="onclick">
rsMath = RSGetASPObject("rsadd.asp");
number1 = txt1.value;
context = "squaring";
co = rsMath.square(number1,showResults,showErrors,context);
function showErrors(co){
// 轉(zhuǎn)儲粗數(shù)據(jù)
msg = "The raw data returned by the remote method call is "
msg = msg + co.data
alert(msg);
// 顯示友好信息
msg = "The following error occurred during the "
msg = msg + co.context
msg = msg + " remote scripting call:\n"
msg = msg + co.message
alert(msg);
}
</SCRIPT>
Remote Scripting 調(diào)用故障診斷
找到某個 remote scripting 調(diào)用中的確切錯誤源并不總是一件容易的事情,因為 remote scripting 不僅涉及到客戶而且涉及到服務(wù)器上的多個文件。不過,某些類型的錯誤屬于一般性錯誤,而且容易發(fā)現(xiàn)。另外,用戶可以用 remote scripting 機制的錯誤捕獲程序獲得調(diào)用過程中所出現(xiàn)錯誤的詳細信息。
在某些情況下,用戶不能用 remote scripting 進行任何處理,因為尚未對之進行正確的初始化。下表列出了典型的初始化錯誤及其可能的出錯緣由。
癥狀 可能錯因
Remote scripting 不起作用;客戶頁源僅包含 <APPLET> 標記。 RSEnableRemoteScripting
調(diào)用不在文檔主體內(nèi)。請參閱使得客戶頁內(nèi)的 Remote Scripting 有效。
Remote scripting 不起作用;所有調(diào)用失敗。 ASP 頁未被調(diào)用。使用 http:// 協(xié)議(而不是 file://)。
客戶端錯誤消息,比如當試圖調(diào)用 remote scripting 方法時,出現(xiàn)“未定義 'MSRS' ”消息。 試圖進行遠程調(diào)用之前,未能成功調(diào)用 RSEnableRemoteScripting 方法。
客戶端錯誤消息“對象不支持該屬性或者方法,”特別顯示出和 .HTM 文件不匹配的行號。 找不到代理對象 (Rsproxy.class),或者 RSEnableRemoteScripting 方法中傳遞的是無效 URL。
客戶端錯誤消息“創(chuàng)建文件的 ASP 對象失敗”。 RSGetASPObject 調(diào)用中傳遞的是無效 URL。請參閱作為對象引用 ASP 頁。
如果錯誤位于包含遠程調(diào)用方法的 ASP 頁中,或者如果錯誤出現(xiàn)在對某個遠程方法的調(diào)用過程中,那么用戶可以在某個錯誤回調(diào)函數(shù)中捕獲該錯誤,而且用戶可以從調(diào)用對象的 data 和 message 屬性中獲得關(guān)于錯誤的信息。
下表列出了用戶可以用錯誤回調(diào)函數(shù)捕獲的典型問題以及 message 和 data 屬性中的值。在多數(shù)情況下,message 屬性返回一般性信息,而 data 屬性則包含關(guān)于錯誤的詳細信息。
注意 數(shù)據(jù)屬性包含一定數(shù)目的 XML 標記以及和調(diào)用有關(guān)的其他信息。下表列出了出現(xiàn)在屬性值中的一個字符串。
問題 消息值 數(shù)據(jù)值
RSExecute 方法中 ASP 頁的無效 URL。請參閱同步調(diào)用 Remote Scripting 方法和異步調(diào)用 Remote Scripting 方法 不同的,包括用戶試圖調(diào)用的頁名。 (null)
ASP 文件到 Rs.asp 的路徑錯誤。請參閱使得服務(wù)器頁中的 Remote Scripting 有效。 “調(diào)用的頁不支持 remote scripting。” “未找到包括文件?!?nbsp;
ASP 文件中的語法或者運行時間錯誤。 “調(diào)用的頁不支持 remote scripting。” 和錯誤有關(guān)的細節(jié),包括行號。
試圖調(diào)用不存在的方法。 “不是公用函數(shù)。” “不是公用函數(shù)。”
ASP 構(gòu)造函數(shù)引用了未出現(xiàn)在 ASP 文件中的函數(shù)。請參閱使得服務(wù)器頁中的 Remote Scripting 有效 “調(diào)用的頁不支持 remote scripting。” “functionName未定義。”
相關(guān)文章
remote script文檔(轉(zhuǎn)載自微軟)(八)
remote script文檔(轉(zhuǎn)載自微軟)(八)...2007-03-03remote script文檔(轉(zhuǎn)載自微軟)(四)
remote script文檔(轉(zhuǎn)載自微軟)(四)...2007-03-03remote script文檔[轉(zhuǎn)載自微軟](二)
remote script文檔[轉(zhuǎn)載自微軟](二)...2007-03-03remote script文檔(轉(zhuǎn)載自微軟)(七)
remote script文檔(轉(zhuǎn)載自微軟)(七)...2007-03-03remote script文檔(轉(zhuǎn)載自微軟)(一)
remote script文檔(轉(zhuǎn)載自微軟)(一)...2007-03-03remote script文檔(轉(zhuǎn)載自微軟)(九)
remote script文檔(轉(zhuǎn)載自微軟)(九)...2007-03-03remote script文檔(轉(zhuǎn)載自微軟)(五)
這篇文章主要介紹了remote script文檔的相關(guān)資料,需要的朋友可以參考下2007-03-03remote script文檔(轉(zhuǎn)載自微軟)(六)
remote script文檔(轉(zhuǎn)載自微軟)(六)...2007-03-03不錯的remote script文檔(轉(zhuǎn)載自微軟)(三)
不錯的remote script文檔(轉(zhuǎn)載自微軟)(三)...2007-03-03