2012-02-17 39 views
13

Trong dự án của tôi, tôi đã tạo một ứng dụng web có dịch vụ web. Trong cùng một giải pháp tôi đã thêm một ứng dụng web khác. Tôi đang sử dụng dịch vụ web từ ứng dụng này. Tôi đã thêm tham chiếu web bằng cách sử dụng tham chiếu thêm web bằng cách sử dụng tùy chọn tham chiếu web. Tôi muốn gỡ lỗi lớp proxy được tạo ra (khi tôi thêm một tham chiếu web). Tôi đặt một trình gỡ rối trong lớp proxy nhưng nó không hoạt động. Sau đó, tôi đã sao chép lớp proxy và tạo một lớp mới trong ứng dụng web của khách hàng có cùng nội dung giống nhau và cùng một nội dung và đã xóa tham chiếu web. Nhưng tôi vẫn không thể gỡ lỗi lớp proxy. Làm thế nào tôi có thể gỡ lỗi lớp proxy? Xin vui lòng giúp đỡ.gỡ lỗi lớp proxy dịch vụ web trong C#

+0

Dịch vụ web được lưu trữ như thế nào? – Bernard

+0

Theo kiến ​​thức hạn chế của tôi, webservice và các lớp học sử dụng các hoạt động của nó làm như vậy bằng cách thực hiện một giao diện. Bạn đã thử triển khai giao diện cho mục đích này chưa. –

+0

Bạn có muốn gỡ lỗi chính proxy đó hay bạn muốn có thể gỡ lỗi mã trên dịch vụ (bước vào nó)? –

Trả lời

16

Cố gắng loại bỏ [DebuggerStepThroughAttribute()] từ mã được tạo

3

Bạn đã thử chức năng này chưa? System.Diagnostics.Debugger.Launch();

Thay vì đặt trình gỡ lỗi, hãy sử dụng chức năng ở trên, điều này có thể giải quyết được sự cố của bạn.

Chẳng hạn như bạn muốn gỡ lỗi một thử nghiệm chức năng()

public bool test() 
{ 
System.Diagnostics.Debugger.Launch(); 
//..put it on top of the function 
} 
7

Trong Visual Studio 2010, bạn có thể thiết lập một điểm break (những gì bạn rõ ràng đã cố gắng). Nhưng hãy thử chạy giải pháp dịch vụ web bằng cách nhấp chuột phải vào ứng dụng của bạn, chọn gỡ lỗi và nhấp vào ví dụ mới bắt đầu mới.

Các debug là ngay dưới bộ như khởi động tùy chọn dự án

+0

+1 cho điều này. Tôi nghĩ anh ấy chưa bắt đầu cả hai ứng dụng. –

+1

Nhưng cũng lưu ý có sự khác biệt giữa chạy bình thường và bắt đầu phiên bản mới. Tôi đã có vấn đề này rất nhiều lần (cả hai chạy nhưng dịch vụ không gỡ lỗi), đây là giải pháp. –

+1

Ngoài ra, có thể người ta có thể đề cập rằng các mặc định đang tạo ra một giao thức kết thúc để kết thúc trên bay mà cũng được tìm thấy trong thư mục gỡ lỗi cho các tập tin thực thi. Đôi khi thực sự hữu ích ... và như một bổ sung khác, nếu bạn có cả hai dự án trong cùng một giải pháp và vs studio, để nhập dịch vụ, bạn thực sự cũng nên bắt đầu nhị phân từ thư mục bin, theo cách này bạn có thể nhấp chuột phải vào Project -> Thêm dịch vụ tham khảo và sử dụng các wizzard. – Kjellski

5

Con đường tôi thường làm điều này là để lưu trữ các ứng dụng ứng dụng client và webservice lưu trữ trong IIS địa phương. Bạn nên có hai thư mục ảo ứng dụng. Sử dụng một hồ bơi ứng dụng riêng biệt cho mỗi ứng dụng. Khi một yêu cầu thành công được thực hiện từ ứng dụng khách đến ứng dụng dịch vụ web, cần có hai quy trình công nhân (quy trình w3wp.exe). Bạn sẽ có thể đính kèm trình gỡ lỗi của bạn vào đúng quy trình w3wp để gỡ lỗi nó.

+0

+1 chỉ cần đính kèm vào cả hai quy trình và đặt điểm ngắt. làm xong. –

+0

+1 Đó là những gì tôi làm khi gỡ lỗi dịch vụ. –

2

Đặt một breakpoint ngay trước khi bạn thực hiện cuộc gọi webservice, và sau đó Step Into (F11) webservice gọi chính nó. Khi đã ở trong webservice, bạn có thể đặt thêm các điểm ngắt bất cứ nơi nào bạn muốn.

3

Visual Studio 2008 \ 2010:

  1. Đặt <compilation debug="true"> phục vụ ứng dụng web của bạn

  2. Go vào Tools \ Options, sau đó gỡ lỗi \ General và bỏ chọn Enable Just My Mã (Managed Chỉ)

  3. Đặt điểm ngắt trong proxy c lass (đối với dịch vụ web đặt một điểm ngắt trên Invoke và một điểm khác trên dòng trả về)

    Gỡ lỗi như bình thường.

    Nếu bạn thấy một cái gì đó giống như yêu cầu bước vào dẫn đến tự động bước giao một tài sản hoặc điều hành, chỉ cần làm theo các hướng dẫn (click chuột phải trên dòng, bỏ chọn "Bước qua tài sản và khai thác" hoặc "Bước cụ thể ... ").

    enter image description here
2

Là một bổ sung cho câu trả lời khác, bạn cũng có thể nhấn phải chuột lên giải pháp và chọn "Set Dự án StartUp ..."

Theo tiết/Startup dự án chung, chọn tùy chọn radio cho "Nhiều dự án khởi động:" và sau đó cho các dự án dịch vụ web và proxy của bạn, hãy chọn Hành động "Bắt đầu".

Gỡ lỗi bây giờ sẽ khởi chạy trình gỡ lỗi trong cả hai dự án mỗi lần bạn nhấn chạy.

1

Thêm trong mã của bạn (trong C#):

System.Diagnostics.Debugger.Launch(); 

Kiểm tra nếu bạn xây dựng dự án của bạn là "Giải pháp Configurations: Debug".

Các vấn đề liên quan