2009-06-28 13 views

cevap

12

Sadece web servisine geçerli bir çağrı yapın. Zaman aşımına uğrarsa veya bir 404 hatası alırsanız, web servisi kullanılamaz.

bu yöntemi deneyebilirsiniz
4

Kullanmaya çalışınız. Eğer çalışırsa, o zaman kullanılabilir. Eğer değilse, o zaman (veya siz ve sunucu arasında ağ bağlantı sorunları var) değil. Burada sihir yok.

5

..

public bool IsAddressAvailable(string address) 
    { 
     try 
     { 
      using(System.Net.WebClient client = new WebClient()) 
      { 
       client.DownloadData(address); 
       return true; 
      } 
     } 
     catch 
     { 
      return false; 
     } 
    } 
... ve bunun gibi diyoruz ...

MessageBox.Show(IsAddressAvailable("http://localhost/my.webservices/mywebservice.asmx").ToString()); 
+0

Bunu beğendim (ve kullandınız, teşekkürler!) Ancak istemci nesnesini başlattığınızda bir USING deyimi eklemenizi öneririm. Özellikle bu çok kullanılan bir ping olduğu için, bertaraf edilmesi önemlidir. –

+1

Yep. Cevabımı uygun şekilde güncelleyeceğim. – lkg

1

Sonunda

function WebService_OnLine(UrlWebService:String): Boolean; 
Var 
urlCheck : uri; 
request : WebRequest; 
response : WebResponse; 
begin 
MemoLogWebService.Lines.Add('Testing WebService'); 
urlCheck := Uri.Create(UrlWebService); 
request  := WebRequest.CreateDefault(urlCheck); 
request.Timeout := 20000; 
    try 
     response :=request.GetResponse(); 
     MemoLogWebService.Lines.Add(response.Headers.ToString); 
     Result:=True; 
    except 
     on E : Exception do 
     Begin 
     MemoLogWebService.Lines.Add(E.Message); 
     Result:=False; 
     End; 
    end; 
End; 
Delphi .NET bu kodu yazdım

PS: Bana ilham verdiğiniz için çok teşekkür ederim.

+1

Özel durum tuzağınızı, iletişim temelli istisnalara daraltabilirsiniz. İstisnai istisnalara ek olarak felakete yol açabilecek bir hata olabileceğinden, nadiren İstisnayı yakalamak istersiniz. –

İlgili konular