2014-01-31 1 views
0

Я пишу часть программного обеспечения, которое работает на служебном устройстве в сети клиентов, но не в домене. Служба автообнаружения недоступна из домена так же, как и в домене или даже в Интернете. Ни один из способов работы службы по умолчанию не будет найден в соответствии с документами, но ИТ-персонал клиента говорит мне, предположительно: /, все это будет работать, если я могу получить доступ к автообнаружению по ссылке, которую они мне дали. Есть ли способ переопределить подход по умолчанию и передать ему этот url для автообнаружения? Hardcoding ссылка на /exchange.asmx не является вариантом и не добавляет это устройство в домен.Обмен веб-службами Автообнаружение без ссылки по умолчанию

Я использую многократно повторяющееся и проверенное программное обеспечение, но эта ситуация является первой.

ответ

1

Используя управляемый API EWS, вы можете сделать это, используя класс AutodiscoverService. Он имеет constructor, который принимает URI службы автообнаружения в качестве параметра.

Ваш код должен выглядеть примерно так. Обратите внимание, что я отключу поиск SCP, поскольку вы не находитесь в домене. Я действительно не пробовал этот код, но давал ему попробовать:

AutodiscoverService ads = new AutodiscoverService(new Uri("...")); 
ads.EnableScpLookup = false; 
ads.Credentials = new NetworkCredential(...); 
ads.RedirectionUrlValidationCallback = delegate { return true; }; 
GetUserSettingsResponse grResp = ads.GetUserSettings("[email protected]", UserSettingName.ExternalEwsUrl); 
Uri casURI = new Uri(grResp.Settings[UserSettingName.ExternalEwsUrl].ToString()); 

var service = new ExchangeService() 
{ 
    Url = casURI, 
    Credentials = ads.Credentials, 
}; 
Смежные вопросы