Tài liệu Remote Script (trích từ Microsoft)(7)

Tài liệu: Kiểm tra lỗi
Khi bạn gọi phương thức bằng remote scripting trong script máy chủ, có thể gặp nhiều loại lỗi, bao gồm lỗi cú pháp, lỗi khi chạy, cũng như lỗi trong quá trình gọi phương thức remote scripting. Cơ chế gọi remote scripting cung cấp cho bạn cách để nhận biết thông tin lỗi xảy ra trong quá trình gọi.

Trình xử lý lỗi có một chút khác biệt tùy thuộc vào việc bạn thực hiện cuộc gọi đồng bộ hay bất đồng bộ. Nếu lỗi xảy ra trong một cuộc gọi đồng bộ, cơ chế remote scripting sẽ hiển thị một thông báo lỗi trong trình duyệt. Nội dung lỗi lấy từ thuộc tính message của đối tượng được gọi. Để biết thêm chi tiết, vui lòng tham khảo phần “Remote Scripting Gọi để khắc phục sự cố”.

Tuy nhiên, nếu bạn thực hiện một cuộc gọi bất đồng bộ gây ra lỗi, bạn có thể bắt lỗi đó bằng cách chỉ định một hàm callback xử lý lỗi. Việc gọi hàm này tương tự như các hàm callback thông thường.

Bắt lỗi trong các cuộc gọi bất đồng bộ

Bạn có thể chỉ định tên hàm callback xử lý lỗi trong các cuộc gọi remote scripting bất đồng bộ của mình. Vì bạn phải truyền con trỏ hàm callback, nên đối với các phương thức gọi bất đồng bộ, bạn phải sử dụng JavaScript. Nếu bạn đã tạo được tham chiếu đối tượng đến trang máy chủ, bạn có thể sử dụng ví dụ cú pháp đầu tiên. Nếu không, hãy sử dụng ví dụ cú pháp thứ hai.

callObject = ASPObject.methodName(p1, p2[,…],
callbackFunction, errorCallbackFunction, context)

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

Để biết thêm thông tin chi tiết về việc tạo cuộc gọi bất đồng bộ đến phương thức trên máy chủ, vui lòng tham khảo phương pháp Remote Scripting gọi bất đồng bộ.

Bất kể bạn thực hiện cuộc gọi đồng bộ hay bất đồng bộ, bạn đều có thể lấy được thông tin về điều kiện lỗi bằng cách kiểm tra thuộc tính của đối tượng gọi. Nếu người dùng đã chỉ định hàm callback xử lý lỗi, thì đối tượng gọi sẽ được truyền dưới dạng tham số, giống như cách truyền tham số trong các hàm callback thông thường. Đặc biệt, các thuộc tính sau cung cấp thông tin lỗi:

status: Nếu cuộc gọi từ xa thất bại thì sẽ chứa giá trị -1.

data: Chứa thông tin thô ở định dạng XML do máy chủ trả về. Đây là nguồn thông tin tốt nhất để gỡ lỗi vì nó bao gồm toàn bộ nội dung thông báo lỗi cùng với các thông điệp khác do máy chủ tạo ra.

message: Chứa thông báo lỗi được tạo ra bởi tiến trình proxy remote scripting (nếu có). Thông báo lỗi trong message không nhất thiết phải giống với nội dung trong thuộc tính data. Ví dụ, nếu trang ASP chứa một lỗi cú pháp, thì thông báo chi tiết về lỗi đó sẽ xuất hiện trong thuộc tính data, còn thuộc tính message chỉ chứa một thông báo chung – thông báo rằng người dùng không thể gọi phương thức trên trang ASP.

Đoạn script dưới đây minh họa một hàm callback xử lý lỗi trong script phía khách. Đoạn script đầu tiên tạo ra một cuộc gọi remote scripting và chỉ định hàm callback xử lý lỗi. Đoạn script thứ hai là chính hàm callback xử lý lỗi. Hàm callback này không kiểm tra rõ ràng giá trị thuộc tính status của đối tượng gọi, vì hàm này chỉ được gọi khi cuộc gọi thất bại.

<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){
// Xuất dữ liệu thô
msg = "The raw data returned by the remote method call is "
msg = msg + co.data
alert(msg);
// Hiển thị thông báo thân thiện
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 Chẩn đoán sự cố
Việc tìm ra nguồn lỗi chính xác trong một lệnh gọi remote scripting không phải lúc nào cũng dễ dàng, vì remote scripting liên quan không chỉ đến phía khách mà còn đến nhiều tệp trên máy chủ. Tuy nhiên, một số loại lỗi là lỗi phổ biến và dễ phát hiện. Ngoài ra, người dùng có thể sử dụng trình xử lý lỗi của cơ chế remote scripting để nhận thông tin chi tiết về lỗi xảy ra trong quá trình gọi.

Trong một số trường hợp, người dùng không thể thực hiện bất kỳ xử lý nào bằng remote scripting vì chưa được khởi tạo đúng cách. Bảng dưới đây liệt kê các lỗi khởi tạo điển hình và các nguyên nhân lỗi có thể xảy ra.

Triệu chứng Nguyên nhân có thể
Remote scripting không hoạt động; mã nguồn trang khách chỉ chứa thẻ <APPLET>. RSEnableRemoteScripting
Lệnh gọi không nằm trong phần thân của tài liệu. Vui lòng tham khảo cách làm cho Remote Scripting hoạt động trong trang khách.
Remote scripting không hoạt động; tất cả lệnh gọi đều thất bại. Trang ASP không được gọi. Sử dụng giao thức http:// (thay vì file://).
Thông báo lỗi phía khách, ví dụ khi cố gắng gọi phương thức remote scripting, xuất hiện thông báo “Chưa định nghĩa ‘MSRS’”. Đã cố thực hiện lệnh gọi từ xa trước khi gọi phương thức RSEnableRemoteScripting thành công.
Thông báo lỗi phía khách “Đối tượng không hỗ trợ thuộc tính hoặc phương thức này,” đặc biệt hiển thị số dòng không khớp với tệp .HTM. Không tìm thấy đối tượng proxy (Rsproxy.class), hoặc URL truyền trong phương thức RSEnableRemoteScripting không hợp lệ.
Thông báo lỗi phía khách “Tạo đối tượng ASP của tệp thất bại”. URL được truyền trong lệnh gọi RSGetASPObject không hợp lệ. Vui lòng tham khảo việc tham chiếu trang ASP dưới dạng đối tượng.

Nếu lỗi nằm trong trang ASP chứa phương thức gọi từ xa, hoặc nếu lỗi xảy ra trong quá trình gọi một phương thức từ xa, thì người dùng có thể bắt lỗi đó trong một hàm callback lỗi, và người dùng có thể nhận thông tin về lỗi từ thuộc tính data và message của đối tượng gọi.

Bảng dưới đây liệt kê các sự cố điển hình mà người dùng có thể bắt bằng hàm callback lỗi, cũng như giá trị trong các thuộc tính message và data. Trong hầu hết các trường hợp, thuộc tính message trả về thông tin chung, trong khi thuộc tính data chứa thông tin chi tiết về lỗi.

Lưu ý: Thuộc tính data chứa một số thẻ XML nhất định và các thông tin khác liên quan đến lệnh gọi. Bảng dưới đây liệt kê một chuỗi xuất hiện trong giá trị thuộc tính.

Vấn đề Giá trị message Giá trị data
URL không hợp lệ của trang ASP trong phương thức RSExecute. Vui lòng tham khảo gọi đồng bộ phương thức Remote Scripting và gọi bất đồng bộ phương thức Remote Scripting. Khác nhau, bao gồm tên trang mà người dùng cố gắng gọi. (null)
Đường dẫn từ tệp ASP đến Rs.asp sai. Vui lòng tham khảo cách làm cho Remote Scripting hoạt động trong trang máy chủ. “Trang được gọi không hỗ trợ remote scripting.” “Không tìm thấy tệp bao gồm.”
Lỗi cú pháp hoặc lỗi thời gian chạy trong tệp ASP. “Trang được gọi không hỗ trợ remote scripting.” Chi tiết liên quan đến lỗi, bao gồm số dòng.
Cố gắng gọi một phương thức không tồn tại. “Không phải là hàm công khai.” “Không phải là hàm công khai.”
Hàm khởi tạo ASP tham chiếu đến hàm không xuất hiện trong tệp ASP. Vui lòng tham khảo cách làm cho Remote Scripting hoạt động trong trang máy chủ. “Trang được gọi không hỗ trợ remote scripting.” “functionName chưa được định nghĩa.”

Tài nguyên này được người dùng tải lên và nội dung được lấy từ Internet. Trang web này chỉ giới thiệu miễn phí để học tập và chia sẻ. Nếu có bất kỳ vấn đề bản quyền hoặc vấn đề nào khác, vui lòng liên hệ với biên tập viên của trang web này để xử lý!

Lưu ý quan trọng: : Nếu phần mềm liên quan đến thanh toán, thành viên, nạp tiền, v.v., thì đây là những hành động của nhà phát triển phần mềm hoặc công ty sở hữu phần mềm đó và không liên quan gì đến trang web này. Cư dân mạng cần phải tự đưa ra phán đoán của mình.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *