2011-12-27 33 views
5

Trong khi gọi một webservice được lưu trữ trong một máy chủ từ một trang aspx nhận được lỗi như "Yêu cầu không thành công với một phản hồi trống"."Yêu cầu không thành công với một phản hồi trống" khi gọi một dịch vụ web

mã trong trang của tôi

try { 
    HttpWebRequest request1 = (HttpWebRequest)WebRequest.Create("https://login.erp.com/rodeprovisioning/provisioning.asmx"); 
    request1.Accept = "text/xml"; 
    request1.Method = "POST"; 
    WebProxy proxyObject = new System.Net.WebProxy("http://10.0.0.1:8080/", true); 
    request1.Proxy.Credentials = CredentialCache.DefaultCredentials; 
    string sReturnValue = null; 
    if (string.IsNullOrEmpty(Session["Test"])) { 
     sReturnValue = callservice(); 
     if (sReturnValue == "Success") { 
      ErrorLabel.Text = sReturnValue; 
      Session["Test"] = "True"; 
     } else { 
      ErrorLabel.Text = sReturnValue; 
     } 
    } 

} catch (Exception ex) { 

} 

và trong web.config

<system.net> 
    <authenticationModules> 
     <add type = "System.Net.DigestClient" /> 
     <add type = "System.Net.NegotiateClient" /> 
     <add type = "System.Net.KerberosClient" /> 
     <add type = "System.Net.NtlmClient" /> 
     <add type = "System.Net.BasicClient" /> 
    </authenticationModules> 
    <connectionManagement> 
     <add address = "*" maxconnection = "2" /> 
    </connectionManagement> 
    <defaultProxy> 
     <proxy usesystemdefault="True" bypassonlocal = "True" /> 
    </defaultProxy> 
    <webRequestModules> 
     <add prefix = "http" type = "System.Net.HttpRequestCreator"  /> 
     <add prefix = "https" type = "System.Net.HttpRequestCreator"  /> 
     <add prefix = "file" type = "System.Net.FileWebRequestCreator"   /> 
    </webRequestModules> 
    </system.net> 

Có một bức tường lửa problem.Any Đề xuất?

+1

Bạn đã thử sử dụng Wireshark để tìm hiểu điều gì đang xảy ra ở cấp HTTP không? –

+0

Không jon i havent ... – bala3569

+4

Sau đó, tôi đề nghị đó nên là bước tiếp theo của bạn. Không có vấn đề gì trong việc cố gỡ lỗi máy khách nếu đó là vấn đề phía máy chủ hoặc ngược lại. –

Trả lời

15

Tôi biết đây là một câu hỏi cũ, nhưng chúng tôi đã có cùng một ngoại lệ xảy ra ở một trong những môi trường hội nhập của chúng tôi:

System.Net.WebException: The request failed with an empty response 

Vấn đề này đã được rằng khi chúng tôi nâng cấp phần cứng máy chủ, chúng tôi cũng chuyển tất cả chúng tôi điểm cuối để sử dụng HTTPS. Mã đang gọi các điểm cuối không được nâng cấp, vì vậy mã vẫn đang sử dụng HTTP thông thường. Rõ ràng đây là ngoại lệ bạn nhận được khi bạn cố gắng gọi một dịch vụ HTTPS là HTTP. Hy vọng điều này sẽ giúp ai đó xuống dòng.

+0

nó đã giúp tôi 2 năm sau đó! cảm ơn! – UrsulRosu

-2

Trong ứng dụng khách hàng.config hoặc web.config đầu tiên kiểm tra URL dịch vụ web, nếu URL dịch vụ web của bạn có chứng chỉ Lớp cổng bảo mật, sau đó thêm cùng một URL lớp cổng bảo mật cho app.config hoặc web.config. Như thế này "https://crm.XXXX.com/webServiceName.asmx"

System.Net.WebException: Yêu cầu thất bại với một phản hồi trống

4

Tôi muốn thêm vào những gì Andacious đã nêu. Tôi đã thực hiện một cuộc gọi đến một dịch vụ web mà là https nhưng khi tôi nhìn vào các thuộc tính của đối tượng thực hiện cuộc gọi nó thực sự đã được sử dụng http. Vì vậy, tôi đặt cụ thể thuộc tính URL.

Tôi có một lớp được gọi là trao đổi kế thừa từ SoapHttpClientProtocol.

interchangeWS = new InterchangeWS(); 
interchangeWS.Url = "https://somesite/interchange.asmx"; 

string x = interchangeWS.SomeMethod("someParameter"); 
Các vấn đề liên quan