Поступили жалобы пользователей на то, что они не могут подключиться к Lync Server 2013 с мобильных устройств. Раньше подключались, а сейчас перестали. При этом обычный клиент Lync 2013 подключается вполне нормально. Рассмотрим решение этой проблемы с точки зрения методики поиска и устранения неисправностей Lync Server.
Первым делом нужно локализовать проблему, поскольку может быть много вариантов, то пытаемся повторить эффект. Берем самый Windows Phone 8 и пытаемся подключиться через него. Не подключается, и это очень хорошо, когда проблема легко воспроизведена и следовательно, локализовать ее будет не трудно. Смотрим протоколы. На Windows Phone 8 включение протоколирования находится в настройках Lync
Сохраненные журнала попадают в папку Saved Pictures, под именами начинающимися с Log... Правда с расширением jpg.
Теперь их можно списать на компьютер, изменить расширение на txt и прочитать в любом текстовом редакторе.
2013-05-30 10:07:39.708 Lync[2380:5672] INFO APPLICATION CUcwaAutoDiscoveryService.cpp/1551:Successfully started the GetUserUrlOperation request for http://lyncdiscover.coral.ru/?sipuri=sip:sip_mobf@coral_ru
2013-05-30 10:07:41.139 Lync[2380:4868] ERROR UTILITIES CHttpConnection.cpp/1019:Request failed with the WININET errorCode (UcwaAutoDiscoveryRequest): -2146697191
2013-05-30 10:07:41.143 Lync[2380:5672] INFO TRANSPORT CHttpRequestProcessor.cpp/173:Received response of request(UcwaAutoDiscoveryRequest) with status = 0x22020001
2013-05-30 10:07:41.143 Lync[2380:5672] INFO TRANSPORT CHttpRequestProcessor.cpp/201:Request UcwaAutoDiscoveryRequest resulted in E_ConnectionError (E2-2-1). The retry counter is: 0
Изучив протокол, в данном случае мы видим, что мобильный клиент даже не может подключиться к стандартному адресу http://lyncdiscover.coral.ru
Мы знаем, что этот адрес опубликован через Proxy Server (у нас TMG), а само приложение находится на Lync Front End на сайте Lync Server External Web Site. При запросе клиента по этому адресу должен выдаваться XML файл с параметрами. Т.е. проблема может быть как на TMG, так и на FE сервере.
Для начала проверим Ping на lyncdiscover.coral.ru - к сожалению из мобильного клиента мы этого сделать не можем, поэтому проверяем с компьютера. В нашем случае - пингуется.
Зетем пробуем получить доступ через браузер к адресу http://lyncdiscover.coral.ru, адрес недоступен.
А должно быть так
Внимательно присмотревшись к принтскринам можно понять, что тест не совсем корректен, клиент запрашивает адрес по протоколу http, а мы проверили по https, но в данном случае результат тот же. Если бы клиент запрашивал данные по протоколу https, то распространенная проблема - окончание срока действия сертификата, но к данному случаю она не относится. В сообщении четко видно, что проблемы на Web узле к которому попытался достучаться TMG. Значит нужно посмотреть Front End и работу служб на нем.
Бывает, что после перезагрузки сервера или установки обновлений, службы не стартуют, здесь все в порядке, все службы выполняются.
Тогда идем в просмотр событий и с разу видим ошибки. No Connectivity with Web App
Есть ошибки при доступе к Web, что и требовалось понять. Так что первым делом нужно устранить эту ошибку, а дальше посмотрим.
Перезапускаем IIS при помощи команды iisreset , выполненной от имени администратора, и смотрим события.
И видим, что проблема решилась.
Проверяем доступ из Web браузера и здесь получаем нужный XML файл
Теперь можно переходить непосредтвенно на мобильного клиента. Да, подключается нормально. Все, проблема решена при помощи одной команды.
После решения проблемы у меня всегда возникает вопрос, а что стало причиной неработоспособности. В данном случае, немного покопавшись в списке системных событий я нашел сообщение, Что было в автоматическом режиме было установлено Security Update for Lync Server 2013 Web Components Server
Теперь понятно, почему IIS потребовал перезапуска.
Если рассмотреть неработоспособность в общем виде, то это несоответствие тому что ожидается от системы, тому, что получается на самом деле. В этом примере невозможность подключения мобильных клиентов - это несоответствие. Но невозможность подключения - слишком обширное поле для поиска, поскольку проблемы могут быть не только на на стороне программного клиента или на стороне сервера, но и где-то между ними, на коммуникационном уровне или же вне этого поля как то проблемы неправильного использования самого программного клиента. Например, неправильный ввод пароля, как самый тривиальный случай.
Здесь важно максимально быстро локализовать место возникновения проблемы, а только потом приступать к ее решению.
Алгоритм поиска простой:
1. Воспроизвести проблему - здесь нужно было посмотреть непосредственно на мобильном клиенте
2. Проверить протоколы работы клиента - запустить протоколирование и снять протокол в момент возникновения проблемы
3. Проверить протоколы работы сервера (возможно, нужно будет запустить дополнительный отладчик)
4. Проверить работоспособность системы в промежуточных точках и на дополнительных тестах - здесь мы смотрели доступ к файлу конфигурации по http://, но есть еще много дополнительных средств
5. До локализации проблемы повторять тесты, сужая область поиска.
Инструкция по установке mobility для Lync Server 2013
http://technet.microsoft.com/en-us/library/hh690023.aspx