程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> ASP編程 >> ASP技巧 >> remote script文檔(轉載自微軟)(七)

remote script文檔(轉載自微軟)(七)

編輯:ASP技巧

文檔: 檢查錯誤
當您在服務器腳本中用 remote scripting 調用方法時,可能會遇到多種錯誤,包括語法錯誤和運行時間錯誤,以及調用 remote scripting 方法時的錯誤。remote scripting 調用機制向您提供了獲知調用過程中所出現錯誤信息的途徑。

錯誤處理程序根據您是進行同步或者異步調用稍微有些不一樣。如果您在進行同步調用時導致錯誤,那麼 remote scripting 機制將在浏覽器中顯示一條錯誤消息。錯誤文字來自於調用對象的 message 屬性。有關詳細信息,請參閱如下的“Remote Scripting 調用故障診斷”。

不過,如果您產生導致一個錯誤的異步調用,那麼您可以通過指定一個錯誤回調函數捕獲該錯誤,該回調函數的調用在很大程度上和普通回調函數有相似之處。

捕獲異步調用中產生的錯誤

您可以指定自己異步 remote scripting 調用中的錯誤回調函數名。由於您必須傳遞該回調函數的函數指針,因此對於異步方法調用來說,您必須使用 JavaScript。如果您已經創建了對服務器頁的對象引用,那麼可以用第一個語法示例。否則可以用第二個語法示例。
callObject = ASPObject.methodName(p1, p2[,...],
   callbackFunction, errorCallbackFunction, context)

callobject = RSExecute(url, methodName, p1, p2[,...],
   callbackFunction, errorCallbackFunction, context)


有關產生對服務器方法異步調用的詳細信息,請參閱異步調用 Remote Scripting 方法。

不管您進行同步還是異步調用,都可以得到關於錯誤條件的信息,方法是測試調用對象的屬性。如果用戶指定了錯誤回調函數,那麼調用對象就被作為參數傳遞,就象普通回調函數參數傳遞一樣。特別是下面的屬性提供了錯誤信息:

status 如果遠程調用失敗則包含 -1。


data 包含服務器返回的 XML 格式的粗信息。這是調試的最好信息源,因為它包含了錯誤消息的完整文本以及服務器生成的其他消息。


message 包含 remote scripting 代理過程生成的錯誤消息信息(如果有的話)。message 中的錯誤消息不必要和 data 屬性中的一樣。例如,如果 ASP 頁包含一條語法錯誤,那麼關於該錯誤的詳細消息將出現在 data 屬性中,但消息屬性將只包含這樣一條消息──它指示用戶不能調用 ASP 頁上的方法。
下面的腳本示例了客戶腳本中的一個錯誤回調函數。第一個腳本產生一個 remote scripting 調用,並指明錯誤回調函數。第二個腳本是錯誤回調函數本身。錯誤回調函數並不顯式地對調用對象 status 屬性值進行測試,因為該函數僅在調用失敗時才被調用。

<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){
    // 轉儲粗數據
    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 調用故障診斷
找到某個 remote scripting 調用中的確切錯誤源並不總是一件容易的事情,因為 remote scripting 不僅涉及到客戶而且涉及到服務器上的多個文件。不過,某些類型的錯誤屬於一般性錯誤,而且容易發現。另外,用戶可以用 remote scripting 機制的錯誤捕獲程序獲得調用過程中所出現錯誤的詳細信息。

在某些情況下,用戶不能用 remote scripting 進行任何處理,因為尚未對之進行正確的初始化。下表列出了典型的初始化錯誤及其可能的出錯緣由。

症狀 可能錯因
Remote scripting 不起作用;客戶頁源僅包含 <APPLET> 標記。 RSEnableRemoteScripting
調用不在文檔主體內。請參閱使得客戶頁內的 Remote Scripting 有效。
Remote scripting 不起作用;所有調用失敗。 ASP 頁未被調用。使用 http:// 協議(而不是 file://)。
客戶端錯誤消息,比如當試圖調用 remote scripting 方法時,出現“未定義 'MSRS' ”消息。 試圖進行遠程調用之前,未能成功調用 RSEnableRemoteScripting 方法。
客戶端錯誤消息“對象不支持該屬性或者方法,”特別顯示出和 .HTM 文件不匹配的行號。 找不到代理對象 (RsPRoxy.class),或者 RSEnableRemoteScripting 方法中傳遞的是無效 URL。
客戶端錯誤消息“創建文件的 ASP 對象失敗”。 RSGetASPObject 調用中傳遞的是無效 URL。請參閱作為對象引用 ASP 頁。


如果錯誤位於包含遠程調用方法的 ASP 頁中,或者如果錯誤出現在對某個遠程方法的調用過程中,那麼用戶可以在某個錯誤回調函數中捕獲該錯誤,而且用戶可以從調用對象的 data 和 message 屬性中獲得關於錯誤的信息。

下表列出了用戶可以用錯誤回調函數捕獲的典型問題以及 message 和 data 屬性中的值。在多數情況下,message 屬性返回一般性信息,而 data 屬性則包含關於錯誤的詳細信息。

注意 數據屬性包含一定數目的 XML 標記以及和調用有關的其他信息。下表列出了出現在屬性值中的一個字符串。

問題 消息值 數據值
RSExecute 方法中 ASP 頁的無效 URL。請參閱同步調用 Remote Scripting 方法和異步調用 Remote Scripting 方法 不同的,包括用戶試圖調用的頁名。 (null)
ASP 文件到 Rs.ASP 的路徑錯誤。請參閱使得服務器頁中的 Remote Scripting 有效。 “調用的頁不支持 remote scripting。” “未找到包括文件。”
ASP 文件中的語法或者運行時間錯誤。 “調用的頁不支持 remote scripting。” 和錯誤有關的細節,包括行號。
試圖調用不存在的方法。 “不是公用函數。” “不是公用函數。”
ASP 構造函數引用了未出現在 ASP 文件中的函數。請參閱使得服務器頁中的 Remote Scripting 有效 “調用的頁不支持 remote scripting。” “functionName未定義。” 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved