如果我的代码无法在C#中连接Web服务,我该如何尝试3次?

时间:2011-11-29 07:47:46

标签: c# web-services robustness

这是我的代码:

FtpWebRequest reqFTP;
reqFTP = (FtpWebRequest)FtpWebRequest.Create(Constant.IP);
reqFTP.Credentials = new NetworkCredential(UserName, Password);
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
response = (FtpWebResponse)reqFTP.GetResponse();
Stream responseStream = response.GetResponseStream();
reader = new StreamReader(responseStream);

如果我的代码无法连接,我想尝试连接到Web服务。只有3次之后,我才想放弃。

我该怎么办?

我正在考虑try catch并计算失败时间,但我认为会有更好的解决方案。

2 个答案:

答案 0 :(得分:1)

int faultCounter = 0;
bool faulted;
do {
  faulted = false;
  try {
    // perform service operation
  } catch {
    faultCounter++;
    faulted = true;
  }
} while (faulted && faultCounter < 3);

答案 1 :(得分:0)

将代码封装在循环中,如果没有异常则返回或中断。