2012-07-31 7 views
5

Tôi có ứng dụng dịch vụ web .net C# mvc3 đã phát triển nhà phát triển web trực quan. 2010 Tôi đang gọi dịch vụ web từ ứng dụng di động Android. Tôi muốn thử nghiệm các dịch vụ web, từ trình giả lập nhật thực. Khi tôi gỡ lỗi ứng dụng webservice, mọi thứ hoạt động tốt bằng cách gọi các dịch vụ từ trình duyệt web nhưng khi tôi gọi từ ứng dụng android bằng cách sử dụng trình giả lập, bạn nhận được "HTTP/1.1 400 Bad Request".Dịch vụ web của nhà phát triển web trực quan về gỡ lỗi HTTP/1.1 400 Yêu cầu không hợp lệ

điều kỳ lạ là nếu tôi xuất bản ứng dụng dịch vụ web trên IIS 7 cục bộ, mọi thứ đều tốt mặc dù tôi không thể gỡ lỗi dịch vụ.

khi tôi debig các dịch vụ sử dụng các nhà phát triển web trực quan một trang web xuất hiện với một địa chỉ như thế:

"http: // localhost: 1627/myservice.asmx/myMethod"

trên Android của tôi ứng dụng tôi gọi dịch vụ với một url như thế:

"http://10.0.2.2:1627/myservice.asmx/myMethod"

nhưng sau đó tôi nhận được "HTTP/1.1 400 Bad Request"

Tôi thực sự sẽ đánh giá cao sự giúp đỡ nào.

cảm ơn.

Trả lời

3

Theo Cannot connect ASP.NET development server (VS2010) via IP address

Các phát triển ASP.NET Server sẽ phục vụ các trang yêu cầu trình duyệt trên máy tính cục bộ. Nó sẽ không phục vụ các trang đến một máy tính khác. Ngoài ra, nó sẽ không phục vụ các tệp nằm ngoài phạm vi ứng dụng. ASP.NET Development Server cung cấp một cách hiệu quả để kiểm tra các trang cục bộ trước khi bạn xuất bản các trang đến một máy chủ sản xuất đang chạy IIS.

3

Đối với Visual Studio 2010, tôi luôn sử dụng inetd là công cụ chuyển tiếp cổng. Kể từ Visual Studio 2012 tôi có vấn đề này là tốt. Vấn đề là chỉ có các cuộc gọi localhost được cho phép trong máy chủ phát triển, ngay cả các cuộc gọi proxy không hoạt động trừ khi bạn thay đổi các tiêu đề yêu cầu. Tôi đã thực hiện một số sửa đổi cho một máy chủ proxy đơn giản hiện có mà tôi tìm thấy trên GitHub. Nó thay đổi địa chỉ IP trong url yêu cầu thành `localhost. Tải xuống mã here.


Tôi đã tìm ra giải pháp tốt hơn. Khi bạn đã cài đặt IIS Express trên máy tính của mình, hãy tạo một ứng dụng mới trong IIS của thư mục dự án của bạn và đặt cho nó một bí danh. Lưu ý rằng hồ bơi ứng dụng phù hợp được đặt và bạn sẽ có thể duyệt trang web của mình qua http://localhost/YourProject/ Khi bạn không thể kết nối từ các máy tính khác, đó có thể là sự cố tường lửa.