2013-02-25 27 views
22

Tôi đang sử dụng Url dịch vụ khám phá tự động cho một địa chỉ email được chỉ định.'Không thể tìm thấy dịch vụ tự động phát hiện' khi cố gắng truy cập tài khoản Exchange 2010 với EWS MANAGED API

ExchangeService Service = new ExchangeService(ExchangeVersion.Exchange2010); 
Service.Credentials = new WebCredentials("[email protected]", "Password"); 
Service.AutodiscoverUrl("[email protected]"); 
Folder inbox = Folder.Bind(Service, WellKnownFolderName.Inbox); 
Console.WriteLine("The folder name is" + inbox.DisplayName.ToString()); 

Nếu tôi làm như thế này tôi gettin một lỗi:

The Autodiscover service couldn't be located

Những gì tôi phải làm gì để tránh lỗi này?

Trả lời

27

Bạn có Service.Credentials sai, sử dụng nó như thế này:

Service.Credentials = new WebCredentials(username, password, domainname); 

Sử dụng thông tin tên miền, không phải là địa chỉ email.

Cũng doublecheck sau:

  1. Phiên bản bạn chỉ định trong new ExchangeService() trận
  2. tham số truyền cho Service.AutodiscoverUrl(); là đúng máy chủ (địa chỉ email mà dữ liệu cần phải được lấy)

Các các công trình sau đây cho tôi (trong Ứng dụng bảng điều khiển mới):

// Tweaked to match server version 
ExchangeService Service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 

// Dummy but realistic credentials provided below 
Service.Credentials = new WebCredentials("john", "12345678", "MYDOMAIN"); 
Service.AutodiscoverUrl("[email protected]"); 
Folder inbox = Folder.Bind(Service, WellKnownFolderName.Inbox); 
Console.WriteLine("The folder name is " + inbox.DisplayName.ToString()); 

//Console output follows (IT localized environment, 'Posta in arrivo' = 'Inbox') 
> The folder name is Posta in arrivo 
+0

Cảm ơn bạn đã trả lời. Alex.I đã thử như bạn đã nói ở trên. đến. – user1891567

+0

Tôi không biết phải nói gì, tôi đã sao chép mã của bạn trong ứng dụng giao diện điều khiển mới và nó hoạt động sau khi khớp với phiên bản của máy chủ (phiên bản của chúng tôi là 2007SP1) và thay đổi thông tin đăng nhập, như tôi đã nêu ở trên. Sự khác biệt phiên bản của máy chủ có thể có liên quan nhưng tôi không có cách nào để xác minh nó. – Alex

+0

tôi đã thử bằng cách thay đổi phiên bản thành Exchange2007_SP1, Exchange2010, Exchange2010_SP1, Exchange2010_SP2 ... Lỗi tương tự cũng xảy ra. – user1891567

6

cố gắng sử dụng này:

Service.Credentials = new WebCredentials("john", "12345678", "MYDOMAIN"); 

KHÔNG này thông báo một

Service.Credentials = new WebCredentials("[email protected]", "12345678", "MYDOMAIN"); 

tên người dùng là 'john' KHÔNG '[email protected]', Nó chặn tôi cho khá một vài giờ cho việc sử dụng một giây .. ..

7

Tôi sẽ khuyên bạn nên bật Theo dõi, để đạt được điều này:

 Service.TraceEnabled = true; 

tôi đã phải đối mặt với vấn đề tương tự sau đó khi tôi kích hoạt dấu vết những dấu vết sẽ hướng dẫn bạn biết chính xác những gì đang happening.In trường hợp cấp giấy chứng nhận SSL của tôi là có mặt để giải quyết nó Tôi đi theo sau post

Có thể có nhiều vấn đề chẳng hạn như:

  • Người dùng có thể bị chặn.
  • Các DSN không thể tìm thấy autodiscover.domain.com
+0

Cảm ơn. Điều này đã giúp tôi xác định vấn đề trong trường hợp của tôi. DNS không thể giải quyết autodiscover.domain.com trên máy chủ, trong khi điều này làm việc trên máy cục bộ của tôi. Đã thêm một mục nhập trong tệp máy chủ để trỏ autodiscover.domain.com đến địa chỉ IP thích hợp và mọi thứ hoạt động như mong đợi. – user2260040

+1

Để cấu hình nơi đầu ra của dấu vết đi, hãy làm theo hướng dẫn tại đây https://msdn.microsoft.com/en-us/library/office/dd633676(v=exchg.80).aspx –

0

tôi có kinh nghiệm cùng một vấn đề với Exchange 2013. Trong trường hợp của tôi nguyên nhân là một mặc định Proxy khai trong tập tin cấu hình của tôi, mà có lẽ ngăn chặn các dịch vụ Autodiscover để hoạt động chính xác.

<system.net> 
    <defaultProxy enabled="true"> 
     <proxy proxyaddress="http://localhost:8888" bypassonlocal="False"/> 
    </defaultProxy> 
</system.net> 

Sau khi nhận xét thẻ <defaultProxy>, tự động khám phá có thể tìm thấy Url dịch vụ.

13

Hãy để tôi chỉ ra rằng nếu bạn đang cố truy cập Office 365 thì thông tin đăng nhập web thực sự có dạng WebCredentials (strUsername, strPassword); với strUsername là địa chỉ email của tài khoản bạn đang cố truy cập.

Tôi đã gặp phải lỗi này và hóa ra ai đó đã thay đổi mật khẩu trên tài khoản mà không thông báo cho tôi! Thật là một lỗi lạ khi nhận được khi nó chỉ là một mật khẩu xấu!

+0

cảm ơn @ user3531993 đã thử nghiệm nó hoạt động. Chỉ trong trường hợp người khác đọc tài liệu MSDN - Microsoft đã đưa ra tùy chọn mà strUsername không phải là một email mà chỉ có Username và điều đó làm tôi bối rối vì nó KHÔNG làm việc ở đây là liên kết https://msdn.microsoft.com/en-us/library /dn467891(v=exchg.150).aspx – Dung

+0

Cảm ơn bạn đã chỉ ra rằng lỗi này cũng có thể xảy ra trên thông tin đăng nhập không chính xác. Đã cứu tôi một chút thời gian! – confusedandamused

6

Đối với hồ sơ của sự hoàn chỉnh:

Chúng tôi gặp phải một vụ đột nhiên dừng với lỗi đặc biệt này. Khi dịch vụ đã được chạy không cần giám sát trong nhiều tháng, sử dụng EWS để theo dõi một hộp thư, hóa ra là mật khẩu đã hết hạn. Điều này gây ra AutoDiscovery thất bại với ngoại lệ rất giống nhau:

The Autodiscover service couldn't be located

Đang cập nhật mật khẩu của người dùng Exchange trong AD và kiểm tra tài sản Password Never Expires nó giải quyết được vấn đề đối với chúng ta.

+1

Được viết và hoàn chỉnh. Mỏ đã hết hạn rồi. – wruckie

3

Kiểm tra xem mật khẩu của email này đã được thử nghiệm chưa.

Nếu mật khẩu đã hết hạn, bạn nhận được lỗi này từ Tự động phát hiện.

+1

Điều này không cung cấp câu trả lời cho câu hỏi. Để phê bình hoặc yêu cầu làm rõ từ tác giả, hãy để lại nhận xét bên dưới bài đăng của họ. –

+0

Trên thực tế @StephenMuecke câu trả lời này hữu ích - hóa ra đó là vấn đề của tôi! – kaveman

0

Tôi đã nhấn nút này và dấu vết cho thấy sau khi sử dụng proxy để truy cập 365, nó bắt đầu tra cứu DNS cho bản ghi SVC. Tra cứu này chuyển sang DNS nội bộ chứ không phải proxy, DNS nội bộ của chúng tôi không giải quyết các mục nhập DNS bên ngoài, đó là lý do chúng tôi có máy chủ proxy. Chưa phát hiện ra lý do tại sao nó thực hiện tra cứu DNS thay vì sử dụng máy chủ proxy, nhưng đó là nguyên nhân khiến phiên bản của chúng tôi gặp sự cố này