2013-02-26 2 views
1

У меня есть проект, в котором я назначаю пользователям Office 365 лицензии. Существует веб-проект, который позволяет администраторам просматривать доступные лицензии и выбирать лицензию для пользователя. На заднем плане есть служба, которая выполняет фактическое назначение лицензии (и многие другие задачи) каждые 15 минут. Причина, по которой мы не назначаем лицензии напрямую, заключается в том, что пользователь, возможно, еще не синхронизирован с Office 365. Служба автоматически повторит попытку позже, если DirSync еще не запущен.Модуль PowerShell не найден при работе в качестве службы

Вернуться к моей проблеме: Подключение к Office 365 использует модуль PowerShell «MSOnline». Проблема в том, что этот модуль не может быть загружен службой. Я всегда получаю стандартное сообщение об ошибке:

Указанный модуль «MSOnline» не был загружен, потому что в любом каталоге модулей не было найдено допустимого файла модуля.

Веб-приложение не имеет этой проблемы. Например, он подключается и может извлекать доступные лицензии. Если я использую код из приложения-службы в LINQPad или как отдельный автономный исполняемый файл, все работает отлично. Только модуль не может загрузить модуль. Может кто-нибудь мне помочь?

Следующий фрагмент кода используется как веб-приложением, так и службой для подключения к Office 365 (код упрощен для повышения удобочитаемости).

P.S .: сервис работает под "Local System" счет.

+2

Включает ли переменная среды PSModulePath путь, в котором находится ваш модуль MSOnline? –

+0

@DavidBrabant К сожалению, «PSModulePath» является правильным. Это то же самое значение для веб-приложения и сервиса. – fero

+1

Работаете ли вы в качестве 32-битного или 64-битного целевого объекта. Это может иметь некоторое влияние. – JPBlanc

ответ

1

Работает ли ваша служба как 32-битная, так и 64-битная. Я столкнулся с проблемой 32/64 в нескольких случаях.

+0

В этом была проблема. Хотя целевой платформой является «Любой процессор», есть флажок, который я до сих пор не заметил («Предпочитаю 32-бит»), который был проверен. Таким образом, служба работала в 32-битном режиме. Устранение этой опции было решением. – fero

Смежные вопросы