17

जब मैं ईमेल भेजने की कोशिश EWS एपीआई का उपयोग कर, मैं निम्नलिखित त्रुटि मिलती है: (message.Send(); में)Exchange वेब सेवा एपीआई और 401 अनधिकृत अपवाद

The request failed. The remote server returned an error: (401) Unauthorized.

मेरे कोड निम्नलिखित है:

ExchangeService exchangeService = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 

//WebService Uri 
try 
{ 
    exchangeService.Url = new Uri("https://exchangeserver/ews/exchange.asmx"); 
} 
catch (Exception ex) 
{ 
    throw new Exception(string.Format("WebService Uri:" + ex)); 
} 

//Credentials 
try 
{ 
    exchangeService.Credentials = new WebCredentials("[email protected]", "pwd", "domain"); 
} 
catch (Exception ex) 
{ 
    throw new Exception(string.Format("Credentials:" + ex)); 
} 

//Send a mail 
try 
{ 
    EmailMessage message = new EmailMessage(exchangeService); 
    message.Subject = "Test"; 
    message.Body = "Test"; 
    message.ToRecipients.Add("[email protected]"); 
    message.Save(); 
    message.Send(); 
} 
catch (Exception ex) 
{ 
    throw ex; 
} 

मैंने इस मुद्दे पर इस साइट पर अन्य पोस्ट पढ़ी लेकिन वे मेरी समस्या का समाधान नहीं कर सके।

+1

आपने इस प्रश्न से पूछकर अपने करियर को बचाया! – Chookoos

+0

मेरी खुशी :) !! – GwenGuts

+0

ऐसी परिस्थिति में जहां ईडब्ल्यूएस कनेक्शन पहले काम करता था, और फिर काम नहीं कर रहा है, यह पासवर्ड की अवधि समाप्त होने जितनी सरल हो सकती है, और इसे बदलने की जरूरत है। – RenniePet

उत्तर

29

इस बदलने का प्रयास करें:

exchangeService.Credentials = new WebCredentials("[email protected]", "pwd", "domain"); 
इस में

:

exchangeService.Credentials = new WebCredentials("user", "pwd", "domain"); 

कुछ समय लॉगिन प्रमाणिकता यह कैसे एक्सचेंज/सक्रिय निर्देशिका कॉन्फ़िगर किया गया है पर निर्भर करता है। यह उपयोगकर्ता @ डोमेन या डोमेन \ उपयोगकर्ता

+0

हाय, टिप के लिए धन्यवाद! यह बहुत अच्छा काम करता है! अब मैं ईडब्ल्यूएस एपीआई के माध्यम से ईमेल भेज सकता हूं :)। – GwenGuts

+0

हमारा स्थानीय रूप से 'डोमेन \ उपयोगकर्ता नाम' के रूप में काम करता है, हालांकि बाहरी मुझे डोमेन और उपयोगकर्ता नाम को विभाजित करना पड़ा। – jtimperley

+0

सरल अभी तक इस तरह के मार्गदर्शन के बिना खोजने के लिए घंटों लग गए होंगे, इसलिए यह उत्तर इसके मुकाबले ज्यादा हकदार है। 24 घंटे के भीतर संशोधित किया जाएगा। ;) –

1

हो सकता है, मुझे एक ही मुद्दे के लिए समाधान खोजने में काफी समय लगा। मेरे मामले में, मुझे आईआईएस साइट के तहत ईडब्ल्यूएस वर्चुअल निर्देशिका में अनुमत यूआरएल की सूची जोड़ने की जरूरत है। आईआईएस प्रबंधन पर जाएं, डिफ़ॉल्ट वेब साइट के तहत, ईडब्ल्यूएस नोड पर क्लिक करें, फिर अनुरोध फ़िल्टरिंग को डबल-क्लिक करें। यूआरएल टैब पर जाएं, और दाईं ओर, यूआरएल की अनुमति दें क्लिक करें। यूआरएल दर्ज करें जिसके द्वारा आप सेवा का आह्वान करेंगे, उदा। example.com/ews/ या server.example.com/ews/

इसके अलावा, इसी तरह के मुद्दों से संबंधित, मुझे सभी होस्ट (*) को Winrm विश्वसनीय होस्ट में जोड़ना होगा (डिफ़ॉल्ट रूप से इसमें केवल स्थानीय आईपी था सूचीबद्ध)।

एचटीएच।

संबंधित मुद्दे