Как устранить системную ошибку плагина Dynamics CRM System.Security.Permissions.FileIOPermission

Ошибка бизнес-процесса System.Security.SecurityException: Запрос на разрешение типа "System.Security.Permissions.FileIOPermission, mscorlib, версия = 4.0.0.0, культура = нейтральная, PublicKeyToken = b77a5c561934e089 'не выполнена. в System.Security.CodeAccessSecurityEngine.Check (Требование объекта, StackCrawlMark & ​​stackMark, Boolean isPermSet) в System.Security.CodeAccessPermission.Demand () в System.IO.FileStream.Init (строковый путь, режим FileMode, доступ к FileAccess, доступ к FileAccess, права доступа Int32) useRights, FileShare share, Int32 bufferSize, параметры FileOptions, SECURITY_ATTRIBUTES secAttrs, String msgPath, логический bFromProxy, логический useLongPath, логический checkHost) в System.IO.FileStream..ctor (строковый путь, режим FileMode, доступ к FileAccess, общий доступ к File32, FileShareShareShareSize) , Опции FileOptions, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost) в System.IO.File.InternalWriteAllBytes (путь строки, байты [], Boolean checkHost) в сервисе действия RetrieveAttachments.RetrieveClass.Exvisor was: Demand Тип первого неудачного разрешения: System.Security.Permissions.FileIOPermission. Зона неудачной сборки: MyComputer.

Я также добавил следующий метод в файл плагина AssemblyInfo.cs[сборка: System.Security.AllowPartiallyTrustedCallers] но его поднять ту же ошибку.

QueryExpression notes = new QueryExpression { EntityName = "annotation", ColumnSet = new ColumnSet("filename", "subject", "annotationid", "documentbody","mimetype") };
notes.Criteria.AddCondition("annotationid", ConditionOperator.Equal, annotationid);
     EntityCollection NotesRetrieve = service.RetrieveMultiple(notes);
     if (NotesRetrieve != null && NotesRetrieve.Entities.Count > 0)
     {
      foreach (var note in NotesRetrieve.Entities)
      {
       string fileName = note.GetAttributeValue<string>("filename");
       string cleanFileName = string.Empty;
       foreach (var chr in fileName.ToCharArray().ToList())
       {
        if(!Path.GetInvalidFileNameChars().Contains(chr)) cleanFileName = cleanFileName + chr; 
       }
     FileIOPermission f = new FileIOPermission(FileIOPermissionAccess.Write, @"D:\note");
     string fileLocation = Path.Combine(@"D:\note", cleanFileName);
     byte[] fileContent = Convert.FromBase64String(NotesRetrieve.Entities[0].Attributes["documentbody"].ToString());
     System.IO.File.WriteAllBytes(fileLocation, fileContent);
    }
   }

Ответы на вопрос(2)

Ваш ответ на вопрос