मैं एक्सचेंज सर्वर पर अपने आउटलुक खाते के साथ एएसपीनेट के माध्यम से सी # एक्सचेंज ईडब्ल्यूएस से कनेक्ट करने का प्रयास करता हूं और मुझे "एक खाते के रूप में अनुरोध करते समय मेलबॉक्स नहीं है, आपको किसी भी विशिष्ट के लिए मेलबॉक्स प्राथमिक एसएमटीपी पता निर्दिष्ट करना होगा फ़ोल्डर आईडी।" जब मैं कैलेंडर प्राप्त करने का प्रयास करता हूं
ईडब्ल्यूएस से जुड़ना:
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());
किसी भी सहायता की सराहना की जाएगी।
2 जवाब
ठीक है तो मैंने इसे इसके साथ काम करते हुए पाया:
ExchangeService service = new ExchangeService("ExchangeVersion");
service.Credentials = new WebCredentials("Username", "Password", "Domain");
service.AutodiscoverUrl("Email", RedirectionUrlValidationCallback);
और अब यह अनुरोध की गई सभी नियुक्तियों (आरंभ और समाप्ति तिथि के अनुसार) को कनेक्ट और पुनर्प्राप्त करता है।
आशा है कि यह अच्छा अभ्यास है और नए सुझावों के लिए खुला है
आप वेब क्रेडेंशियल और 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-प्रमाणीकरण-और-प्रतिरूपण/
संबंधित सवाल
नए सवाल
c#
C # (उच्चारण "तेज देखें") Microsoft द्वारा विकसित एक उच्च स्तरीय, सांख्यिकीय रूप से टाइप किया हुआ, बहु-प्रतिमान प्रोग्रामिंग भाषा है। C # कोड आमतौर पर Microsoft के .NET परिवार के टूल और रन-टाइम को लक्षित करता है, जिसमें .NET फ्रेमवर्क, .NET कोर और Xamarin अन्य शामिल हैं। C # या C # के औपचारिक विनिर्देश में लिखे गए कोड के बारे में प्रश्नों के लिए इस टैग का उपयोग करें।