मैं एक्सचेंज सर्वर पर अपने आउटलुक खाते के साथ एएसपीनेट के माध्यम से सी # एक्सचेंज ईडब्ल्यूएस से कनेक्ट करने का प्रयास करता हूं और मुझे "एक खाते के रूप में अनुरोध करते समय मेलबॉक्स नहीं है, आपको किसी भी विशिष्ट के लिए मेलबॉक्स प्राथमिक एसएमटीपी पता निर्दिष्ट करना होगा फ़ोल्डर आईडी।" जब मैं कैलेंडर प्राप्त करने का प्रयास करता हूं

ईडब्ल्यूएस से जुड़ना:

private ExchangeService ConnectToService(ExchangeRetrivalParams exchangeRetrivalParams)
{
    ExchangeService service = new ExchangeService(exchangeRetrivalParams.ExchangeVer);
    service.Credentials = new WebCredentials(exchangeRetrivalParams.Username, exchangeRetrivalParams.Password);
    service.UseDefaultCredentials = true;
    service.AutodiscoverUrl(exchangeRetrivalParams.Email, RedirectionUrlValidationCallback);
    return service;
}

कैलेंडर प्राप्त करने का प्रयास कर रहा है:

try {
    ExchangeService service = ConnectToService(email, username, password);

    int NUM_APPTS = NumberOfItems;

    // Initialize the calendar folder object with only the folder ID.
    CalendarFolder calendar = CalendarFolder.Bind(service, WellKnownFolderName.Calendar, new PropertySet());
    //get the start and end times
    DateTime startDate = new DateTime(2017, 7, 21);
    DateTime endDate = new DateTime(2017, 7, 23);

    // Set the start and end time and number of appointments to retrieve.
    CalendarView cView = new CalendarView(startDate, endDate, NUM_APPTS);
    // Limit the properties returned to the appointment's subject, start time, and end time.
    cView.PropertySet = new PropertySet(AppointmentSchema.Start,
                                        AppointmentSchema.End,
                                        AppointmentSchema.IsRecurring,
                                        AppointmentSchema.AppointmentType);
}
catch (Exception e) {
    lastOperationErrorMsg = e.Message;
    return null;
}

इसके साथ विफल रहता है:

एक खाते के रूप में अनुरोध करते समय जिसमें मेलबॉक्स नहीं है, आपको किसी विशिष्ट फ़ोल्डर आईडी के लिए मेलबॉक्स प्राथमिक एसएमटीपी पता निर्दिष्ट करना होगा।

पर: CalendarFolder calendar = CalendarFolder.Bind(service, WellKnownFolderName.Calendar, new PropertySet());

किसी भी सहायता की सराहना की जाएगी।

0
aura 23 जुलाई 2017, 18:32

2 जवाब

सबसे बढ़िया उत्तर

ठीक है तो मैंने इसे इसके साथ काम करते हुए पाया:

ExchangeService service = new ExchangeService("ExchangeVersion");
service.Credentials = new WebCredentials("Username", "Password", "Domain");
service.AutodiscoverUrl("Email", RedirectionUrlValidationCallback);

और अब यह अनुरोध की गई सभी नियुक्तियों (आरंभ और समाप्ति तिथि के अनुसार) को कनेक्ट और पुनर्प्राप्त करता है।

आशा है कि यह अच्छा अभ्यास है और नए सुझावों के लिए खुला है

0
aura 25 जुलाई 2017, 18:11

आप वेब क्रेडेंशियल और UseDefaultCredentials दोनों का उपयोग कर रहे हैं जैसे:

 service.Credentials = new WebCredentials(exchangeRetrivalParams.Username, exchangeRetrivalParams.Password);
service.UseDefaultCredentials = true;

आपको या तो एक या दूसरे का उपयोग करना चाहिए, यदि आप वर्तमान में लॉग ऑन उपयोगकर्ता का प्रतिरूपण करने का प्रयास कर रहे हैं तो आपको केरब्रोस प्रतिनिधिमंडल से निपटना होगा जैसे मेरा सुझाव है कि आप https://blogs.msdn.microsoft. com/emeamsgdev/2012/11/05/ews-from-a-web-application-using-windows-प्रमाणीकरण-और-प्रतिरूपण/

0
Glen Scales 25 जुलाई 2017, 08:38