2011-11-22 38 views
14

Tôi có dịch vụ web asmx đang chạy trên máy chủ thử nghiệm đã bật quyền truy cập ẩn danh.Tại sao tôi không thể kết nối với ngoại lệ máy chủ từ xa từ ứng dụng web chứ không phải ứng dụng giao diện điều khiển?

Khi tôi thêm tài liệu tham khảo web để một ứng dụng giao diện điều khiển và gọi một phương thức Hello World đơn giản như vậy:

PivotService.PivotService p = new PivotService.PivotService(); 
String s = p.SayHello(); 

Khi tôi thực hiện chính xác những điều tương tự trong tải trang của một ứng dụng web tôi nhận được một System.Net.WebException: {"Unable to connect to the remote server"} .

Trường hợp ngoại lệ bên trong là {"No connection could be made because the target machine actively refused it 127.0.0.1:8888"}, errorCode 10061.

Tại sao công việc này từ một ứng dụng giao diện điều khiển và không phải là một ứng dụng web?

+0

Tôi nhận được thông báo này khi được kết nối với VPN –

Trả lời

27

Có thể do sự khác biệt trong cài đặt proxy giữa các ứng dụng. Kiểm tra tài liệu MSDN xung quanh thành phần Default Proxy trong tệp cấu hình.

+6

Không có phần tử defaultProxy trong app.config hoặc web.config. Thêm nó vào web.config và đặt enable = false. Đã khắc phục sự cố :) cảm ơn – woggles

+3

Cảm ơn bạn !! Tôi đã phát điên vì chuyện này, đó là tất cả những gì tôi làm. Tôi đã tạo một mục nhập proxy để lọc lưu lượng truy cập thông qua trình duyệt. Sau một lúc xa mã tôi quay trở lại nó một lỗi gặp phải, Fiddler đã không mở do đó proxy đã thất bại. Cảm ơn một lần nữa! – Dal

+0

Lạ. Tôi đã phải thêm nó với mặc định = "true". May mắn sau một vài giờ nó hoạt động :) – KoalaBear

13

Tôi cũng ở trong tình huống tương tự khi sử dụng HttpClient lớp học từ không gian tên System.Net.Http. Tôi đã cố gắng thực hiện cuộc gọi mạng đi qua máy chủ proxy của công ty.

Khi cuộc gọi HttpClient này có thể giải quyết thành công IP của dns khi được gọi từ ứng dụng bảng điều khiển trong studio trực quan, độ phân giải dns thất bại khi cuộc gọi được thực hiện từ API Web. Và hóa ra tôi phải có mục này trong web.config của ứng dụng web api.

<system.net> 
    <defaultProxy /> 
</system.net> 

Trả lời tín dụng cho câu trả lời của Mark 909 để chỉ cho tôi đúng hướng. Vui lòng xem Default Proxy để biết thêm thông tin.

+0

Điều này đã khắc phục được sự cố của tôi. Nó bắt đầu hapenning sau khi tôi thay đổi phương pháp của tôi để async. – Sal

+0

Điều này cũng làm việc cho tôi! Với postman yêu cầu POST của tôi đã đi qua tuy nhiên trong ứng dụng api từ Visual Studio tôi đã nhận được lỗi kết nối. – Diomos

0

Như @R Kiran Kumar gợi ý, tôi cũng đã thêm các giá trị proxy:

<system.net> 
    <defaultProxy> 
     <proxy usesystemdefault="False" 
      proxyaddress="Specify Your Proxy Address: Specify Port Number" 
      // Example, "http://192.168.0.10:1234" 
bypassonlocal="False"/> 
    </defaultProxy> 
    </system.net> 
0

đầu tiên tham khảo remove web từ giao diện điều khiển chạy cho bạn dịch vụ web và sao chép URL vào trình thám hiểm giải pháp của bạn và thêm tham chiếu web (Loại trừ cũ)> Nâng cao> Thêm tham chiếu web thêm URL dán rồi thêm tên tham chiếu web của bạn rồi xây dựng lại giải pháp nó hoạt động tốt cho tôi

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