2013-03-04 1 views
0

Итак, у меня есть часть кода, которая работает при первом вызове, и может сообщить мне мое последнее уведомление на Facebook через RSS. Но, когда я иду, чтобы опросить его, второй раз он зависает прямо перед \ во время создания объекта rssReader.Опрос Facebook по опросам через RSS не срабатывает при втором запуске, кто-нибудь знает почему?

private string getLatest() 
    { 
     var req = (HttpWebRequest)WebRequest.Create(rssFeedURL); 
     req.Method = "GET"; 
     req.UserAgent = "Fiddler"; 

     var rep = req.GetResponse(); 
     var rssReader = XmlTextReader.Create(rep.GetResponseStream()); 

     if(rssReader.ReadToFollowing("item")) 
     {     
      rssReader.ReadToFollowing("title"); 
      return rssReader.ReadElementContentAsString(); 
     } 
     return latest; 
    } 

Может ли кто-нибудь сказать мне, почему это так? (Этот код почти идентичен коду другого, который работает)

Это называется в этой функции:

public string alertFeed() 
{ 
    string re = getLatest(); 
    if (re.Equals(latest)) 
      return null; 
      latest = re; 
      return "Facebook Notification, " + re; 
    } 
} 

EDIT:

Вот фиксированный код, для всех, кто интересуется:

private string getLatest() 
    { 

     var req = (HttpWebRequest)WebRequest.Create(rssFeedURL); 
     req.KeepAlive = false; 
     req.Method = "GET"; 
     req.UserAgent = "Fiddler"; 
    ---> using (WebResponse rep = req.GetResponse()) 
     { 
      var rssReader = XmlTextReader.Create(rep.GetResponseStream()); 

      if (rssReader.ReadToFollowing("item")) 
      { 
       rssReader.ReadToFollowing("title"); 
       return rssReader.ReadElementContentAsString(); 
      } 
    ---> } 
     return latest; 
    } 

Детали, на которые я должен был добавить, как указал Грац, я также мог использовать rep.Close() ;.

ответ

0

Может быть, потому что вы не закрывались WebResponse «представитель»

rep.Close(); 
+0

Спасибо, я на самом деле в конечном итоге, используя, используя ключевое слово, но ваше решение работал хорошо. – nileshp87