मैं माइक्रोसॉफ्ट एक्सचेंज वेब सर्विसेज 1.1 एसडीके का उपयोग कर रहा हूं और नई मेल अधिसूचना की सदस्यता लेने के लिए स्ट्रीमिंग कनेक्शन का उपयोग कर रहा हूं। सभी अधिसूचनाएं प्राप्त करने के लिए ठीक काम करते हैं लेकिन मुझे कुछ समय में मेरी एक्सचेंज के बारे में त्रुटियां मिलती हैं, मेरी सदस्यता नहीं मिल पाती है।मेरी स्ट्रीमिंग सदस्यता कहां जा रही है?
नीचे वह कोड है जिसका उपयोग मैं अपनी सदस्यता और उन घटनाओं को शुरू करने के लिए कर रहा हूं जो मैं उपयोग करता हूं।
public void Subscribe()
{
var locateMailbox = new Mailbox
{
Address = "myemail"
};
var folderId = new FolderId(WellKnownFolderName.Inbox, locateMailbox);
var foldersToWatch = new[] {folderId};
StreamingSubscription streamingSubscription =
_exchangeService.SubscribeToStreamingNotifications(foldersToWatch, EventType.NewMail);
// Timeout is set at 1 minute intentionally
var streamingConnection = new StreamingSubscriptionConnection(_exchangeService, 1);
streamingConnection.AddSubscription(streamingSubscription);
streamingConnection.OnSubscriptionError += ResolveError;
streamingConnection.OnDisconnect += Reconnect;
streamingConnection.Open();
}
public void Reconnect(object sender, SubscriptionErrorEventArgs disconnectEventArgs)
{
if (!((StreamingSubscriptionConnection)sender).IsOpen)
((StreamingSubscriptionConnection)sender).Open();
}
public void ResolveError(object sender, SubscriptionErrorEventArgs errorEventArgs)
{
var streamingSubscriptionConnection =
(StreamingSubscriptionConnection) sender;
if (!streamingSubscriptionConnection.IsOpen)
streamingSubscriptionConnection.Open();
}
ServiceLocalException - You must add at least one subscription to this connection before it can be opened.
कि अपवाद खुद कहता है और मुझे पता है कि मैं बस Reconnect()
के अंदर एक और सदस्यता बना सकते हैं हूँ। मुझे आशा है कि कोई मुझे समझने में मदद कर सकता है कि सदस्यता कहां जा रही है। मैं कल्पना नहीं कर सकता कि एक्सचेंज 2010 जैसे उत्पाद मेरी सदस्यता खो देंगे। इसके अलावा, मैं त्रुटि को इंगित नहीं कर सकता। कभी-कभी मैं अपनी सदस्यता को 10 मिनट तक सक्रिय रख सकता हूं और दूसरी बार मुझे अपनी सदस्यता के बारे में एक त्रुटि प्राप्त होती है जो 2-3 मिनट के बाद मान्य नहीं होती है।
यह क्या है इसके लिए मैं एक्सचेंज 2010 एसपी 1 का उपयोग कर रहा हूं।
जैसा आपने सुझाव दिया था और मैंने जो त्रुटि कोड प्राप्त किया है वह है 'त्रुटि सदस्यता NotFound'। निश्चित नहीं है क्यों क्योंकि अगर मैं 'प्रेषक' तर्क पर ड्रिल करता हूं तो मैं देख सकता हूं कि वहां एक सदस्यता है। – Mike
त्रुटि कोड सर्वर से आया त्रुटि है। जब आप नीचे ड्रिल करते हैं और देखते हैं कि सदस्यता अभी भी है, तो आप ग्राहक पर हैं। यह वह सर्वर है जो सदस्यता नहीं ढूंढ सकता है। मेरा अनुमान है कि सर्वर ने एक मिनट या उसके बाद सदस्यता को त्याग दिया क्योंकि आपने केवल एक मिनट का टाइमआउट दिया था। लंबे समय तक प्रयास करें और देखें कि समस्या अभी भी होती है या नहीं। आपने जानबूझकर एक मिनट का टाइमआउट क्यों उपयोग किया? –
मैंने टाइमआउट को एक मिनट में सेट किया क्योंकि मुझे 30 मिनट के टाइमआउट के साथ एक ही त्रुटि मिल रही थी। त्रुटि खोजने के लिए 30 मिनट के कई सेट प्रतीक्षा करने के बजाय मैं त्रुटियों को तेज़ी से देखना चाहता था। लेकिन अब जब मैं इसके बारे में सोचता हूं तो मुझे यह सुनिश्चित करने में रक्षात्मक रूप से कोडिंग करना चाहिए कि मैं हर समय सक्रिय सदस्यता रखता हूं। आप कभी नहीं जानते कि सर्वर के पास हिचकी होगी। धन्यवाद। – Mike