問題描述:
在做CRM的開發中,經常會碰到一些奇怪的問題,比如:
1.在還原了備份的數據庫后,打開新的Organization時彈窗報錯:“There are encrypted fields in the organization database, but the data encryption feature isn’t activated......”;
2.無法使用 PluginRegistration 工具進行 Plugin 注冊或在更新;
3.無法使用Ribbon工具(Ribbon工具Publish失敗,一直在轉,卡在Import,不會完成也不會報錯)
以上問題都有可能是Encryption Key出了問題,1比較明顯,23結合起來看或者單獨出現
解決方案一:
首先根據提示可知是 CRM 上 Data Encryption 有問題,需要打開看下對應的設置情況:Setting >> Data Management >> Data Encryption
打開後提示只能通過https訪問,但是我們又不想設置HTTPS,應該如何操作呢?
方法:連接數據庫,執行以下sql語句:
UPDATE [MSCRM_CONFIG].[dbo].[DeploymentProperties] SET [BitColumn]=1 WHERE ColumnName='DisableSSLCheckForEncryption'
執行后重啓CRM服務器的IIS服務,此時我們就可以直接在HTTP協議下打開 Encryption Key Page 了
如果是 Current Encryption Key 爲空,則直接輸入一串新key(任意字符串組成),並 Active 即可;若不爲空,則輸入對應的 Key(如果忘記了請看解決方案二)
點擊 Active 后,可能出現以下情況:“Please select an account that is a member of the PrivUserGroup security group and try again.”
可以在AD服務器上通過以下步驟將當前 login User 添加到 security group 中:
1.打開 Server Manager >> Tools >> Group Policy Management
2.選擇 Domain Admin >> 雙擊或者點擊屬性 >> 選擇 Member of >> Add >> Select Groups >> Advanced.. >> Find Now >> 選擇 PrivReportingGroup 和 PrivUserGroup 添加即可
這時重新進行 Active Encryption Key >> 提示成功,記得要把 SQL update 回原來的狀態 >> 重啓IIS服務
UPDATE [MSCRM_CONFIG].[dbo].[DeploymentProperties] SET [BitColumn]=0 WHERE ColumnName='DisableSSLCheckForEncryption'
現在打開頁面就不會有彈窗報錯問題了,Plugin 也可以正確的注冊上去了。
解決方案二:
如果忘記了 Encryption Key 且需要重置(比如打開頁面沒有彈窗報錯,Plugin組件也能正常注冊,但是 ribbon publish 一直卡在轉圈圈),可以通過以下方法清除原本的 Encryption Key:
在數據庫裏執行以下語句:
USE [Your CRM DataBase] UPDATE EmailServerProfile SET IncomingPassword=null UPDATE EmailServerProfile SET OutgoingPassword=null UPDATE Mailbox SET Password=null UPDATE Queue SET EmailPassword=null UPDATE UserSettings SET EmailPassword=null
Note: 執行后郵件服務相關配置也會被重置,需要重新設置。
參考博客:
http://www.crmphilly.com/how-to-unlock-dynamics-crm-data-encryption/