无法下载抛出异常的注释附件

时间:2018-03-02 04:33:21

标签: dynamics-crm file-permissions dynamics-crm-online workflow-activity dynamics-365

我正在创建工作流活动以从自定义实体下载注释附件。运行工作流程抛出

  

System.NullReferenceException:未将对象引用设置为对象的实例。

这是我的代码:

private static string SaveFile(string fileName, string noteBody)
{
    string outputFileName = @"C:\temp\" + fileName;

    if (!string.IsNullOrEmpty(noteBody))
    {
         // Download the attachment in the current execution folder.
         byte[] fileContent = Convert.FromBase64String(noteBody);
         System.IO.File.WriteAllBytes(outputFileName, fileContent);

    }
    else
    {
        throw new InvalidPluginExecutionException("File content is empty or cannot be retrieved");
    }

    return outputFileName;
}

调试它会显示错误:

System.IO.File.WriteAllBytes(outputFileName, fileContent);

从Visual Studio我得到此异常

  

请求System.Security.Permissions.FileIOPermission类型的权限

1 个答案:

答案 0 :(得分:0)

CRM在线插件&工作流程必须注册&在沙箱隔离模式下运行,这是安全的。部分信任云(不完全信任)。

因此,您无法从插件/工作流代码访问Server中的C:\temp\。您将获得FileIOPermission异常。

  

开发人员可以选择在沙箱中注册他们的插件,称为部分信任,或者在沙箱之外注册,称为完全信任。内部部署和面向Internet的Microsoft Dynamics 365部署支持完全信任。对于Microsoft Dynamics 365(在线)部署,必须在沙箱中注册插件或自定义工作流活动(部分信任)

     

在沙箱中阻止访问文件系统,系统事件日志,某些网络协议,注册表等。

Read more