Dynamics CRM 365 在Plugins呼叫外部介面報錯:請求"System.Net.WebPermission,System,Version=4.0.0.0,Culture=neutral,PublicKey=b77a5c5561934e089"型別的許可權已失敗
Dynamics CRM 365 在Plugins呼叫外部介面報錯:請求"System.Net.WebPermission,System,Version=4.0.0.0,Culture=neutral,PublicKey=b77a5c5561934e089"型別的許可權已失敗
其實是沙盒Plugins對訪問web、檔案有限制。可以通過下面的方式處理:
外掛隔離、信任和統計資訊
適用於: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online
Microsoft Dynamics 365(線上或本地) 支援在獨立環境中執行外掛和自定義工作流活動。 在此獨立環境(也稱為“沙盒”)中,外掛或自定義活動可以使用 Microsoft Dynamics 365 SDK 的所有功能訪問組織 Web 服務。 沙盒中禁止訪問檔案系統、系統事件日誌、某些網路協議、登錄檔及其他事項。 但是,沙盒外掛和自定義活動可以訪問外部終結點,如 Azure 雲服務。
Microsoft Dynamics 365 收集執行時統計資訊,並監視沙盒中執行的外掛和自定義工作流活動。 如果承載此自定義程式碼的沙盒工作程序超出閾值 CPU、記憶體或處理限制或者無響應,則平臺會停止執行該程序。 此時,該工作程序中當前正在執行的任何外掛或自定義工作流活動都會因異常而失敗。 但是,在下次執行該外掛或自定義工作流活動時,它們均會正常執行。 每個組織都具有一個工作程序,所以一個組織中的失敗不會影響其他組織。
總之,建議使用沙盒用作外掛的執行環境,因為沙盒更安全,並支援執行時監視和統計資訊報告,且在所有 Microsoft Dynamics 365 部署上都受到支援。 此外,只有在自定義工作流活動是在沙盒中註冊的情況下,Microsoft Dynamics 365 (online) 才支援執行這些自定義工作流活動。
信任
開發人員可以選擇在沙盒中註冊其外掛(稱為不完全可信),或在沙盒外註冊(稱為完全信任)。 內部部署和麵向 Internet 的 Microsoft Dynamics 365 部署支援完全信任。 對於 Microsoft Dynamics 365 (online) 部署,必須在沙盒(不完全可信)中註冊外掛或自定義工作流活動,此時它們是獨立的(如上所述)。
重要
使用 Microsoft Dynamics CRM 4.0 SDK 發展的自定義工作流活動和外掛在沙盒中不支援執行或不受 Microsoft Dynamics 365 (online) 支援。
執行時統計資訊
Microsoft Dynamics 365 平臺收集有關沙盒中執行的外掛和自定義工作流活動的執行時資訊。 會使用 PluginTypeStatistic 實體記錄將此資訊儲存在資料庫中。 這些記錄將在沙盒自定義程式碼執行後的 30 分鐘到一小時內進行填充。 請參閱 PluginTypeStatistic 屬性,以瞭解收集了哪些資訊。 可以使用檢索訊息或方法檢索此資訊。
Web 訪問
沙盒外掛和自定義工作流活動可以通過 HTTP 和 HTTPS 協議訪問網路。 此功能支援訪問常用 Web 資源,如社交網站、新聞源、Web 服務和更多內容。 此沙盒功能具有以下 Web 訪問限制。
-
僅支援 HTTP 和 HTTPS 協議。
-
不允許訪問本地主機(環回)。
-
不能使用 IP 地址。 必須使用需要 DNS 名稱解析的命名 Web 地址。
-
支援和推薦匿名身份驗證。 未設定提示已登入使用者輸入憑據或儲存這些憑據。
這些預設 Web 訪問限制在執行 Microsoft.Crm.Sandbox.HostService.exe 程序的伺服器上的登錄檔項中定義。 系統管理員可以根據業務和安全需要更改登錄檔項的值。 伺服器上的登錄檔項路徑為:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSCRM\SandboxWorkerOutboundUriPattern
登錄檔項值是一個定義 Web 訪問限制的正則表示式字串。 預設登錄檔項值為:
"^http[s]?://(?!((localhost[:/])|(\[.*\])|([0-9]+[:/])|(0x[0-9a-f]+[:/])|(((([0-9]+)|(0x[0-9A-F]+))\.){3}(([0-9]+)|(0x[0-9A-F]+))[:/]))).+";
通過更改該登錄檔項值,您可以更改對沙盒外掛的 Web 訪問許可權。
具體講解: https://docs.microsoft.com/zh-cn/previous-versions/dynamicscrm-2016/developers-guide/gg334752(v=crm.8)?redirectedfrom=MSDN