【问题标题】:Dynamics CRM 365 (Online) plugin exception EnvironmentPermission using Azure Application InsightsDynamics CRM 365 (Online) 插件异常 EnvironmentPermission 使用 Azure Application Insights
【发布时间】:2017-02-07 23:19:57
【问题描述】:

我正在尝试使用插件和 Azure Application Insights 跟踪自定义事件。构建插件时,我使用 MSBuild.ILMerge.Task 将 Application.Insights.dll 与我的插件程序集合并。这是我的步骤 随后进行合并: http://dynamicscrmcoe.com/il-merge-dynamics-crm-plugins/

我遇到的问题是,当我尝试实例化遥测客户端时:

var telemetryClient = new TelemetryClient();

我收到此错误:

Request for the permission of type System.Security.Permissions.EnvironmentPermission, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

我已尝试使用安全属性授予权限:

[EnvironmentPermission(SecurityAction.Assert, Unrestricted = true)]

也尝试过

[PermissionSet(SecurityAction.Assert, Name = "FullTrust")]

但似乎没有任何效果。任何想法/建议将不胜感激。 提前致谢。

【问题讨论】:

    标签: azure plugins dynamics-crm microsoft-dynamics


    【解决方案1】:

    简短的回答是你不能这样做。当前版本的 Application Insights 不支持对 CRM 沙盒插件施加的代码限制。

    这已作为问题报告并解决:https://github.com/Microsoft/ApplicationInsights-dotnet/issues/416

    我提取了这段代码,它解决了它试图解决的问题,即某些机器信息调用。它仍然会抛出错误,因为它希望能够尝试读取文件系统 - 但它不能。

    Application Insights 旨在在应用程序(通常但不总是,Web 应用程序)的基础级别实现。您在创建自定义插件和工作流活动时编写的代码不是该代码。它是基础级应用程序的插件,该基础级应用程序不实现 Application Insights。

    也就是说,沙盒插件中没有太多需要 Application Insights。 Dynamics CRM 已经跟踪沙盒插件的插件执行统计信息,可以通过 Advanced Find 查看。

    对于详细的跟踪,尤其是异常跟踪,插件中有ITracingService

    【讨论】:

      【解决方案2】:

      如果您仍想从您的插件中触发 Application Insight,有一种方法可以通过 rest 服务。将所有 Application Insights 逻辑写入和 rest 服务并将其部署在 Azure 中。然后通过插件代码触发其余服务并传递所需的参数。

      var uri = new Uri("learningportalservices.azurewebsites.net/.../success");
      var request = WebRequest.Create(uri);
      request.Method = WebRequestMethods.Http.Get;
      request.ContentType = "application/json";
      using (var response = request.GetResponse())
      {
      using (var reader = new StreamReader(response.GetResponseStream()))
      {
      string result = reader.ReadToEnd();
      }
      }
      

      谢谢, 迪利普

      【讨论】:

      • 我们尝试将其作为概念证明并且它有效,但它没有得到架构师的批准(出于各种原因)。微软有一个只读的应用洞察服务,希望它会在某个时候包括写操作。目前这已被搁置。
      猜你喜欢
      • 2018-02-07
      • 2017-10-19
      • 2017-07-09
      • 2017-12-19
      • 1970-01-01
      • 2017-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多