पर सर्वर से बात करने की कोशिश करते रहें तो मेरा एप्लिकेशन किसी सर्वर (कोई समस्या नहीं) के साथ अनुरोध/प्रतिक्रिया का आदान-प्रदान कर रहा है, जब तक कि इंटरनेट कनेक्शन कुछ सेकंड के लिए मर जाता है, फिर वापस आ जाता है। तो फिर इस तरह की एक कोड:जब इंटरनेट डाउन
response = (HttpWebResponse)request.GetResponse();
KeepAliveFailure
आदि
अब ReceiveFailure
की तरह एक स्थिति, ConnectFailure
, साथ, एक अपवाद फेंक देते हैं, यह काफी महत्वपूर्ण है कि यदि इंटरनेट कनेक्शन वापस आता है, मैं कर रहा हूँ है सर्वर के साथ संवाद जारी रखने में सक्षम, अन्यथा मुझे शुरुआत से फिर से शुरू करना होगा और इसमें काफी समय लगेगा।
इंटरनेट वापस आने पर आप इस संचार को फिर से शुरू करने के बारे में कैसे जाएंगे?
फिलहाल, मैं सर्वर के साथ संवाद करने की संभावना की जांच कर रहा हूं, जब तक यह संभव न हो (कम से कम सैद्धांतिक रूप से)। मेरे कोड का प्रयास इस तरह दिखता है:
try
{
response = (HttpWebResponse)request.GetResponse();
}
catch (WebException ex)
{
// We have a problem receiving stuff from the server.
// We'll keep on trying for a while
if (ex.Status == WebExceptionStatus.ReceiveFailure ||
ex.Status == WebExceptionStatus.ConnectFailure ||
ex.Status == WebExceptionStatus.KeepAliveFailure)
{
bool stillNoInternet = true;
// keep trying to talk to the server
while (stillNoInternet)
{
try
{
response = (HttpWebResponse)request.GetResponse();
stillNoInternet = false;
}
catch
{
stillNoInternet = true;
}
}
}
}
हालांकि, समस्या यह है कि दूसरी कोशिश पकड़ बयान एक अपवाद फेंक इंटरनेट वापस आ गया है, जब भी रखता है।
मैं क्या गलत कर रहा हूं? क्या इसे ठीक करने के लिए जाने का कोई और तरीका है?
धन्यवाद!
आपके प्रश्न का उत्तर नहीं है, लेकिन यदि आपका कनेक्शन लंबे समय तक नीचे चला जाता है, तो आपके पास वर्तमान में इसे मारने का कोई अच्छा तरीका नहीं है ... – Paddy
सर्वर में 5 मिनट का टाइमआउट भी है, इसलिए यदि कनेक्शन वास्तव में 5 मिनट से अधिक समय तक नीचे चला जाता है, तो यह इसे मारने का तरीका है। – Andrei
क्यों आप हर 10 मिनट में कनेक्शन के परीक्षण के लिए टाइमर सेट नहीं करते हैं, फिर भी जो कुछ भी कर रहे थे उसे पुनरारंभ करें? या हो सकता है कि हर बार एक कनेक्टफेलर एक मिनट तक प्रतीक्षा समय बढ़ाए। –