2016-09-06 7 views
-6

ビジネス・プロセス・エラー System.Security.SecurityException:型 'System.Security.Permissions.FileIOPermission、mscorlibの許可を要求、バージョン= 4.0.0.0、Culture =ニュートラル、PublicKeyToken = b77a5c561934e089 'が失敗しました。 System.Security.CodeAccessSecurityEngine.Checkで (オブジェクトの需要、StackCrawlMark & stackMark、ブールisPermSet) System.Security.CodeAccessPermission.Demandで() System.IO.FileStream.Init(文字列のパス、にFileModeモード、FileAccessのアクセスでは、 System.IO.FileStream..ctor(String path、FileMode mode、FileAccess access、FileAccess access)で に設定されている場合は、 System.IO.File.InternalWriteAllBytes(String path、Byte [] bytes、Boolean checkHost)の にある RetrieveAttachments.RetrieveClass.Executeの (ファイルパスの長さは、 IServ iceProviderサービス・プロバイダ) 失敗したアクションだった: 需要 失敗した最初の許可のタイプだった: System.Security.Permissions.FileIOPermission 失敗したアセンブリのゾーンだった:私も追加 マイコンピュータどのようにDynamics CRMのプラグインSystem.Security.Permissions.FileIOPermissionエラーを解決するには

プラグイン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); 
    } 
    } 

答えて

0

プラグインがサンドボックスに登録されている場合、これが問題になる可能性があります。それをサンドボックスの外に登録してみてください。 Here信頼レベルに関する情報が見つかります

+0

こんにちは@pen私はこのレジストリキーの値を変更することによって解決策を与えるあなたが与えたリンクを見たが、サンドボックスプラグインのWebアクセスを変更することができますが、システム管理者だけによって行われます。 Dynamics CRMがサンドボックスモードをサポートしているからといって、プラグインをサンドボックスの外部に登録する方法。 –

+0

こんにちは、「Microsoft Dynamics CRMのオンライン展開では、プラグインまたはカスタムワークフローアクティビティをサンドボックスに登録する必要があります」というリンクを読んで読めるようにしてください。投稿を編集して例外を投げているコードを共有できますか? – pen2

+0

こんにちは@ pen2あなたのプラグインの信頼レベルを読んでください –

2

サンドボックスプラグインからのファイルの読み込みは禁止されています。分離モードをnoneに変更してください。

+0

こんにちは@Maratプラグイン登録ツールで分離モードを変更することはできません。Dynamics CRMはサンドボックスモードをサポートしています –

+0

あなたはどのバージョンをお使いですか?それはオンラインですか?オンラインではない場合、分離モードをnoneに変更することは可能です。 –

+1

CRMを社内で使用し、導入管理者である場合、分離モードを変更することは可能です。 https://msdn.microsoft.com/en-za/library/gg309580.aspx。 – Bvrce

関連する問題