Có cách nào để bắt lỗi HTTP 500 được trả về bởi dịch vụ web .asmx từ máy khách Net không?.Mã mã để nhận phản hồi lỗi HTTP 500 từ dịch vụ web .asmx
Sử dụng Net 4.5 (VS2015), mã khách hàng Net tiêu thụ các dịch vụ .asmx web và gọi nó bằng cách sử dụng mã bên dưới:
var client = new WebserviceApi.MyServiceSoapClient();
var response = client.MyWebServiceMethod();
Nếu dịch vụ web asmx trả về một HTTP 500 lỗi với một thông điệp SOAP chứa thông tin chi tiết lỗi, biến "response" được đặt thành null.
Sử dụng Fiddler, lưu lượng truy cập hiển thị phản hồi HTTP 500 từ dịch vụ web .asmx. Phản hồi chứa một thông báo XML SOAP với các chi tiết về lỗi.
Không có ngoại lệ nào được ném hoặc bị bắt trong mã máy khách .Net, quá trình thực hiện vẫn tiếp tục như bình thường.
Điều này có nghĩa là không có thông tin nào để khách hàng nhận về bản chất của ngoại lệ. Tất cả các mã khách hàng có thể làm là kiểm tra xem "phản hồi" là null, nhưng thông báo ngoại lệ không có sẵn cho mã máy khách.
Có cách nào để buộc mã máy khách .Net ném ngoại lệ nếu dịch vụ web .asmx trả về phản hồi HTTP 500 để thông báo lỗi có thể được kiểm tra/ghi nhật ký không?
Bạn không thể bắt ngoại lệ bằng cách sử dụng câu lệnh 'try cath'? – anmarti
Không có ngoại lệ được ném, thực thi tiếp tục như bình thường với một biến "phản ứng" null. – Lenny
Vì vậy, làm thế nào để bạn biết bạn nhận được 500? – anmarti