Exchange Service - EWS - работает только на локальном хосте - PullRequest
0 голосов
/ 28 июня 2019

Я использую EWS GetUserAvailability, и все работает на локальном хосте, но при отправке моего кода на сервер я получаю следующее сообщение об ошибке:

Запрос не выполнен.Удаленный сервер возвратил ошибку: (401) Unauthorized.

Почему это работает не на моем сервере, а только на localhost?

Вот мой код:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010);
service.Credentials = new WebCredentials("username","password");
service.Url = new Uri("https://mail.mydomain.com/ews/exchange.asmx");
service.UseDefaultCredentials = true;

List<AttendeeInfo> attendees = new List<AttendeeInfo>();

            attendees.Add(new AttendeeInfo()
            {
                SmtpAddress = "b@mydomain.com",
                AttendeeType = MeetingAttendeeType.Room
            });

            attendees.Add(new AttendeeInfo()
            {
                SmtpAddress = "bl@mydomain.com",
                AttendeeType = MeetingAttendeeType.Room
            });

AvailabilityOptions availabilityOptions = new AvailabilityOptions();
            availabilityOptions.GoodSuggestionThreshold = 49;
            availabilityOptions.MaximumNonWorkHoursSuggestionsPerDay = 0;
            availabilityOptions.MaximumSuggestionsPerDay = 2;

            availabilityOptions.MeetingDuration = 60;
            availabilityOptions.MinimumSuggestionQuality = SuggestionQuality.Good;
            availabilityOptions.DetailedSuggestionsWindow = new TimeWindow(DateTime.Now, DateTime.Now.AddDays(1));
            availabilityOptions.RequestedFreeBusyView = FreeBusyViewType.FreeBusy;

            GetUserAvailabilityResults results = service.GetUserAvailability(attendees,
                                                                             availabilityOptions.DetailedSuggestionsWindow,
                                                                             AvailabilityData.FreeBusyAndSuggestions,
                                                                             availabilityOptions);

Я также пытался:

service.Credentials = new WebCredentials("username\\DOMAINNAME","password");

service.Credentials = new WebCredentials("username","password", "DOMAINNAME");

service.Credentials = new WebCredentials("username@mydomain.com","password");

Ни один из них не работал.

1 Ответ

0 голосов
/ 29 июня 2019

Проблема заключалась в том, что для UseDefaultCredentials было установлено значение true, которое, по-видимому, использует учетные данные AD. Когда я устанавливаю значение false и устанавливаю свои учетные данные, это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...