2012-10-10 29 views
6

mã khách hàng ServiceStack này hoạt động:ServiceStack JsonServiceClient, buộc lưu lượng truy cập trên dây cho máy chủ cục bộ?

var client = new JsonServiceClient("http://localhost:32949/test"); 
var request = new MyRequest { ClassificationId = new ClassificationId (21300) }; 
var response = client.Post(request); 

Tuy nhiên, khi quan sát giao thông ở Fiddler, tôi thấy không có gì. Tôi muốn quan sát lưu lượng truy cập để có ý tưởng tốt hơn về cách xây dựng yêu cầu JSON yêu cầu cho các ứng dụng khách khác mà tôi phải viết.

Để làm cho mã trên hoạt động, tôi phải tham khảo hội đồng có dịch vụ và tôi nghi ngờ rằng ServiceStack đang thực hiện một số cuộc gọi thông minh để tránh gửi yêu cầu HTTP. Đây có phải là trường hợp không?

Tại sao tôi không nhìn thấy bất kỳ lưu lượng truy cập nào trong Fiddler và tôi làm cách nào để buộc nó?

Lưu lượng truy cập HTTP đến điểm cuối lưu trữ cục bộ thông qua trình duyệt được hiển thị chính xác.

+0

không quan tâm điều gì sẽ xảy ra nếu bạn thay thế localhost bằng địa chỉ ip (lan)? hoặc nói tên máy chủ phân giải thành 127.0.0.1 trong tệp máy chủ của bạn? – wal

+1

127.0.0.1 cho kết quả tương tự. Tên máy chủ khác, nhưng trỏ đến 127.0.0.1 trong tệp máy chủ lưu trữ, mang lại cho tôi lưu lượng truy cập trong Fiddler như mong muốn. Cảm ơn ! – driis

+0

Tôi sẽ thêm câu trả lời – wal

Trả lời

6

Chỉnh sửa file host của bạn, tọa lạc tại

C: \ Windows \ System32 \ drivers \ etc \ hosts

và thêm các mục sau đây

127.0.0.1 mymachine.com

sau đó hướng khách hàng của bạn đến mymachine.com thay vì localhost

+2

Cảm ơn, đây là giải pháp tôi đã thực hiện. Điều này làm việc vì .NET framework không gửi bất kỳ yêu cầu cục bộ nào thông qua proxy, nhưng chỉ định nghĩa một tên khác cho localhost, hoạt động. Fiddler thực sự tài liệu này - tại đây: http://www.fiddler2.com/fiddler/help/hookup.asp#Q-LocalTraffic – driis

2

Tôi sẽ trả lời câu hỏi của riêng tôi ở đây - commenter @wal chỉ ra vấn đề với tôi:

Điều này không liên quan gì đến ServiceStack và các yêu cầu thực sự đi qua giao thức http. Vấn đề đã được lặp lại để localhost đã không gửi lưu lượng truy cập thông qua fiddler. Nó thực sự được giải thích trên Fiddler2 FAQ page.

1

Bí quyết khác là thay thế uri "localhost" bằng tên máy của bạn và điều đó sẽ hoạt động ngoài hộp với Fiddler.

http://machinename:port/test

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