2013-05-13 20 views
27

Trong VS 2012, tôi đang cố gắng để tạo ra một ứng dụng web MVC 4 với jQuery cuộc gọi đến một dự án Web API. (Các nhà phát triển khác sẽ sử dụng API với ứng dụng gốc hiện tại của chúng tôi và có thể thêm vào API trong tương lai.) Vì vậy, tôi có một dự án là API Web và một dự án khác là trang web MVC 4. Tôi chỉ có thể thiết lập một trong số chúng để chạy, và chúng sử dụng localhost: xxxxx.Làm thế nào để gỡ lỗi Project Web API Từ dự án MVC Trong Cùng Giải pháp

Làm cách nào để gỡ lỗi thay đổi cho cả hai? Ví dụ, giả sử tôi thêm một đường dẫn API mới/api/customer/get và sau đó một cuộc gọi jQuery ajax mới đến đường dẫn đó và làm một cái gì đó với JSON kết quả. Tôi đã thay đổi mã trong cả hai dự án và muốn theo dõi nó từ đầu đến cuối; làm cách nào để khởi chạy cả hai? Làm cách nào để gỡ lỗi cả hai? Chỉ cần rõ ràng, ứng dụng MVC không thực hiện các cuộc gọi phía máy chủ tới API, tôi đang sử dụng MVC chủ yếu để có thể dễ dàng sử dụng các mẫu Handlebars đã được biên dịch trước, rút ​​gọn và (hy vọng) .MẠNG LƯỚI; các cuộc gọi API đến từ jQuery. Vì tôi vẫn còn tương đối mới đối với các công nghệ này, các đề xuất thay thế được hoan nghênh.

Cảm ơn bạn trước.

+6

Bạn có thể nhấp chuột phải vào các giải pháp trong Solution Explorer và chọn "Set dự án Startup ..." sau đó chọn "Nhiều Startup dự án" và khi bạn gỡ lỗi, bạn có thể nhấn breakpoint trong tất cả các dự án mà có một hành động của " Khởi đầu". –

+1

@TDL: Điều đó hoạt động, cảm ơn. Nhưng nó tiếp xúc với một vấn đề khác trong đó mỗi dự án được gắn vào một số cổng địa phương khác nhau, có hiệu lực làm cho chúng khác nhau các trang web (và tên miền?). Kế hoạch là triển khai đến cùng một trang web, nhưng tất cả các tuyến API bắt đầu bằng '/ api /'. Như nó là viết tắt, làm thế nào để tôi thực hiện cuộc gọi jQuery của tôi tham khảo tên miền chính xác khi gỡ lỗi?Tôi chắc chắn không muốn thay thế URL trong chế độ Gỡ lỗi, và sau đó có vẻ như tôi đang gặp phải các vấn đề truy cập miền chéo. Điều đó có ý nghĩa? – Jammerms

+1

Nếu bạn muốn lưu trữ cả hai dưới cùng một trang web, tại sao không kết hợp cả hai dự án thành một? – LordHits

Trả lời

59

tôi đã cùng một vấn đề và đã tìm thấy một giải pháp từ đây:

forums.asp.net

Việc sửa chữa là phải làm như sau:

Trong tập tin giải pháp của bạn, nhấp vào thuộc tính đi đến dự án Startup nút (nếu nó chưa được chọn)

Tiếp theo chọn dự án Nhiều khởi động. Chọn trang web của bạn và dịch vụ web của bạn và trong cột Hành động đảm bảo cả hai đều có "Bắt đầu" được chọn.

Bây giờ khi bạn gỡ lỗi trang web của bạn và đặt một điểm break trong webservice của bạn, cần nhấn điểm break.

+3

Đây phải là câu trả lời. – Tony

+0

Cảm ơn bạn đã giúp tôi học điều gì đó tuyệt vời ngay hôm nay. Làm việc như một say mê. –

+0

Tuyệt vời. Tôi có một dự án ASP.net MVC (UI) và một dự án khác cho Dịch vụ WebAPI của tôi với mẹo này tôi có thể xuất bản và DEBUG cả hai cùng một lúc. :) –

0

Tôi đã có một vấn đề tương tự với dự án web api của tôi. Giải pháp của tôi bao gồm một kết thúc trước góc với 2 dự án api web trên backend. Một dự án api trên web đã xử lý "ủy quyền" và "tài nguyên" được xử lý khác. Tôi đã sử dụng các hướng dẫn sau đây bằng cách Taiseer Joudeh như là một điểm khởi đầu:

http://bitoftech.net/2014/09/24/decouple-owin-authorization-server-resource-server-oauth-2-0-web-api/

Breakpoints làm việc trên "máy chủ uỷ quyền" ... nhưng không phải trên các "máy chủ tài nguyên". Tôi so sánh các gói từ hai dự án để xem những gì là khác nhau. Khi tôi đã thêm "Microsoft.AspNet.WebApi.Cors" vào dự án "máy chủ tài nguyên", các điểm ngắt bắt đầu hoạt động.

0

Đến muộn với bên nhưng trong trường hợp bất kỳ ai khác đang tìm kiếm giải pháp, đây là điều tốt nhất cho tôi: Đặt dự án Api là dự án khởi đầu (tôi cần giới hạn một lần khởi động để có thể lật giữa các trình duyệt dễ dàng hơn). Sau khi kích hoạt dự án dịch vụ, nhấp chuột phải vào dự án web/ui và chọn gỡ lỗi, bắt đầu phiên bản mới. Bạn sẽ có cả hai chạy và bạn sẽ liên tục bước từ web để api.

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