Назад | Перейти на главную страницу

LyncClient.GetClient () не работает при вызове через mvc на сервере

У меня сложный вопрос, и я надеюсь, что кто-нибудь сможет мне помочь (это очень важно для меня).

Мой сайт должен выполнять автоматический вызов через клиент Lync, если кто-то выполняет на веб-сайте определенное действие. По этой причине вызывается командный файл, и этот файл bat вызывает мою программу с параметрами.

Это звучит как вопрос о кодировании для stackoverflow, но все работает нормально на моем компьютере и даже на сервере, когда моя программа вызывается вручную. Проблема возникает, когда мой веб-сайт mvc вызывает программу, особенно эту функцию LyncClient.GetClient(); Я получаю исключение «Хост-процесс не запущен». На моем ноутбуке вызов инструмента через веб-сайт работает при отладке в VS2012. Я знаю, что процесс запущен, потому что я могу закрыть его через диспетчер задач, и он вызывается через мою программу, когда я снова запускаю его. Эта функция LyncClient.GetClient(); встроен.

Любые идеи? Я предполагаю, что это должно быть связано с пользователем веб-сайта, у которого может быть недостаточно прав для доступа к клиенту lync.

Я не программист @yourmother, но похоже, что если вы получаете сообщение «хост-процесс не запущен», то все, что пытается вызвать клиент Lync, не работает в том же контексте, что и вызывающее приложение / программа.

Оглядываясь вокруг, оказывается, что это так: http://social.msdn.microsoft.com/Forums/en-US/communicatorsdk/thread/582cab2e-d51a-4bfe-b4cc-1eed92411754/

Проблема в том, что клиент Lync работает на рабочем столе пользователя в контексте этой рабочей станции. Ваше приложение ASP.NET выполняется в контексте отдельной рабочей станции в рамках процесса IIS и не имеет доступа к клиенту Lync, запущенному в контексте пользователя.

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

И исправление, которое они предлагают, - использовать API UCMA, найденный здесь: http://www.microsoft.com/download/en/details.aspx?id=10566 или, возможно, используйте SDK, найденный здесь: http://www.microsoft.com/en-us/download/details.aspx?id=18898

Это помогает? Я не хотел, чтобы это был комментарий ради форматирования, но я удалю это как ответ, если это не так или вы уже это знаете ...

Для меня решение заключалось в том, чтобы мой Инструмент работал с учетной записью «Администратор». Мне пришлось изменить настройку реестра для автоматического входа. Я просто создаю файл, если вызов должен начаться, и удаляю его, когда он должен остановиться. Инструмент проверяет каждые секунды просмотра, существует ли этот файл, и выполняет вызов Lync, только если он существует.

Я знаю, что это не лучший способ, но он работает в срок. MS имеет некоторые проблемы совместимости со всеми Lync SDK с различными версиями Lync Client / Lync Server и версиями Visual Studio.