2009-07-16 3 views

Trả lời

34

Từ một bài viết trên blog MSDN: http://blogs.msdn.com/mikhailarkhipov/archive/2005/06/24/432308.aspx

Dưới đây là làm thế nào để làm cho công việc ASP gỡ lỗi:

  1. Enable ASP gỡ lỗi trên máy chủ. (Tôi cũng thêm động từ DEBUG vào phần mở rộng asp, nhưng tôi không chắc chắn nếu nó được yêu cầu).
  2. Mở ASP cổ điển trong VS 2005.
  3. Đặt điểm ngắt.
  4. Xem trang trong trình duyệt hoặc chạy mà không cần gỡ lỗi.
  5. Gỡ lỗi | Đính kèm Quy trình
  6. Xác định vị trí quy trình công nhân IIS ASP (w3wp.exe trên IIS6) hiển thị x86 và Tập lệnh và đính kèm dưới dạng Tập lệnh.

Từ eddiegroves bình luận dưới đây:

Về BướC# 1 trong IIS7 - IIS> ASP> Compilation> Debugging Properties> Enable Server-side Debugging

+6

BướC# 1: Bật gỡ lỗi ASP trên máy chủ ..... LÀM THẾ NÀO ĐỂ BẠN LÀM GÌ ?! –

+3

Tôi không biết. Nhưng lần truy cập đầu tiên từ Google có vẻ hứa hẹn: http://technet.microsoft.com/en-us/library/cc738693 (WS.10).aspx –

+0

Tôi sẽ cung cấp cho nó một shot. Cảm ơn. –

2

xây dựng trong ASP cổ điển gỡ lỗi khá kém. Tôi đặt cùng ASP này bao gồm lớp mà làm việc với Firebug + FirePHP. Nó cho phép bạn ghi các giá trị (bao gồm các chuỗi, các mảng đa chiều và thậm chí cả các đối tượng được tạo bằng json.asp) vào bảng điều khiển firebug và xem các đối tượng bộ sưu tập tích hợp của ASP có thể giúp (đặc biệt là với Ajax, nơi bạn không thể xuất dữ liệu gỡ lỗi) phá vỡ các phản ứng json.) Ajax thời gian tải kịch bản và lỗi được tự động đăng nhập để xem nhanh.

https://github.com/dmeagor/ClassicASP-FirePHP

Phát hành theo giấy phép mã nguồn mở MIT

+0

Đây là giải pháp tốt nhất mà tôi đã thấy cho đến nay! Cảm ơn! Mất một chút để làm việc ra rằng "" cần thêm vào tệp firedebug.inc hoặc mọi tệp cùng với "" nhưng một khi đã được giải quyết, nó hoạt động như một sự quyến rũ! – GazB

+3

Có thể điều này sẽ giúp ích. Hãy thử Team Remote ASP Debugger (http://www.remotedebugger.com). Tôi đã gỡ lỗi ASP cổ điển với nó trong nhiều năm. –

+0

Tôi rất thích điều này để làm việc, nhưng tôi nhận được một lỗi ngay sau khi tôi cố gắng gọi "đăng nhập": 'Loại không phù hợp: 'toJson' /lib/asp/ClassicASP-FirePHP/1.2/firedebug.inc, dòng 72' . Điều này vẫn làm việc ở tất cả trong thế giới hậu Firebug? Nó hoạt động trong FF/Chrome Console chuẩn? –

5

Tôi nhận ra điều này là cũ, nhưng nghĩ rằng tôi muốn trả lời giúp đỡ người khác kể từ khi tôi đang tìm kiếm cái gì khác lên.

Bạn có thể sử dụng Visual Studio để gỡ lỗi ASP cổ điển.

Nếu bạn đang chạy một bản sao cục bộ của IIS, chỉ cần đính kèm các chương trình gỡ rối cho quá trình w3wp.exe và bạn có thể đặt breakpoint, thêm biến để xem cửa sổ, vv

Nếu bạn có nhiều hơn 1 trang web , thật hữu ích khi chạy từng ứng dụng trong một nhóm ứng dụng riêng biệt và bạn sẽ có thể xác định quá trình w3wp.exe khác nhau trong cửa sổ Quy trình đính kèm.

Chỉ cần chọn "tập lệnh" làm loại trình gỡ lỗi. Nếu bạn đang chạy IISExpress, thì quá trình iisexpress.exe là đúng để đính kèm.

3

Tôi đã phát hiện ra rằng một thiết lập hữu ích cho phép được tìm thấy ở cấp máy chủ dưới ASP>Compilation>Debugging Thuộc tính>Gửi lỗi Để trình duyệt. Đặt nó thành "True".

Điều này có thể không phù hợp trong mọi trường hợp (ví dụ: đối với trang web có thể truy cập internet).

+0

Có phải thực hiện việc này nhưng gửi lỗi đến tệp nhật ký không? –

+1

@BenjaminGoodacre Trong IIS 7.5, có cài đặt cấp máy chủ trong phần * ASP * có tên * Bật yêu cầu lỗi nhật ký * và mô tả là "Kiểm soát xem máy chủ Web có viết lỗi ASP vào phần ứng dụng của nhật ký sự kiện Windows hay không. các lỗi được ghi vào trình duyệt máy khách và các tệp nhật ký IIS theo mặc định. " Vì vậy, các lỗi nên đã được đăng nhập bởi IIS. –

0

Đây là cách tôi đã tìm ra:

Đặt dừng (dừng ghi) trên địa điểm bạn muốn nhấn điểm gỡ lỗi. Sau đó chạy ứng dụng trên trình duyệt. Khi thực hiện đến để ngăn chặn nó sẽ mở ra gỡ lỗi popup yêu cầu làm gỡ lỗi với Visual studio (một phiên bản VS phải được cài đặt). Sau đó, nó sẽ yêu cầu để đính kèm quá trình và bạn có thể sử dụng f10, f11 để đi bước qua và in Bạn có thể xem dữ liệu bằng cách sử dụng thêm đồng hồ.

0

Tôi sử dụng thông tin sau (tôi nhận được từ nơi nào đó trực tuyến) để ghi vào tệp nhật ký. Tôi muốn một phương pháp để viết trực tiếp vào Console trong Firefox hoặc Chrome, nhưng điều này làm việc khá tốt cho tôi.

LƯU Ý: "dấu thời gian" là hàm tùy chỉnh của tôi. Bạn có lẽ có thể đoán nó làm gì, và có thể cuộn của riêng bạn. ;-)

function error_log(message) 
    dim objFSO, objLog 
    Set objFSO = CreateObject("Scripting.FileSystemObject") 
    Set objLog = objFSO.OpenTextFile("ASP_errors.log", 8, true) 
    objLog.WriteLine "[" & timestamp & "] VBS Message: " & message 
    objLog.close 
    set objLog = nothing 
    set objFSO = nothing 
end function