我有一個項目,可以將Office 365許可分配給用戶。有一個Web項目允許管理員查看可用許可證併爲用戶選擇許可證。在後臺,有一項服務每15分鐘執行一次實際的許可分配(以及許多其他任務)。我們不直接分配許可證的原因是用戶可能尚未同步到Office 365。如果DirSync尚未運行,服務將自動再次嘗試。作爲服務運行時未找到PowerShell模塊
回到我的問題:與Office 365的連接使用PowerShell模塊「MSOnline」。問題是這個模塊不能被服務加載。我總是收到標準錯誤消息:
指定的模塊'MSOnline'未加載,因爲在任何模塊目錄中未找到有效的模塊文件。
Web應用程序沒有這個問題。例如,它連接並可以檢索可用許可證。如果我使用LINQPad中的服務應用程序的代碼或作爲一個小型的獨立可執行文件,一切工作正常。只有服務無法加載模塊。誰能幫我?
以下代碼片段被Web應用程序和服務用於連接到Office 365(代碼被簡化以提高可讀性)。
P.S:該服務在 「本地系統」 帳戶下運行。
您的PSModulePath環境變量是否包含MSOnline模塊所在的路徑? – 2013-02-26 15:06:48
@DavidBrabant不幸的是,'PSModulePath'是正確的。這對於Web應用程序和服務來說是相同的價值。 – fero 2013-02-26 16:34:22
您的服務是以32位還是64位爲目標運行的。它可能有一些影響。 – JPBlanc 2013-02-26 20:26:10