2012-05-28 4 views
4

Pour mon projet actuel, j'utilise Dapper. Tout est parfait. Ensuite, j'avais besoin de le déployer sur un hébergement partagé. Le résultat peut être vu ici (copié YSOD):SecurityException - Dapper sur l'hébergement partagé

Description: L'application a tenté d'effectuer une opération non autorisée par la politique de sécurité. Pour accorder cette autorisation requise à cette application, contactez votre administrateur système ou modifiez le niveau de confiance de l'application dans le fichier de configuration.

Détails de l'exception: System.Security.SecurityException: Demande d'autorisation de type 'System.Security.Permissions.ReflectionPermission, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' a échoué.

Stack trace

[SecurityException: Demande d'autorisation de type 'System.Security.Permissions.ReflectionPermission, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' a échoué.] System.Security.CodeAccessSecurityEngine.Check (objet demande, StackCrawlMark & stackMark, Boolean isPermSet) +0
System.Security.CodeAccessSecurityEngine.Check (CodeAccessPermission cap , StackCrawlMark & stackMark) +31
System.Security.CodeAccessPermission.Demand() +46
System.Reflection.Emit.DynamicMethod.PerformSecurityCheck (propriétaire Type, StackCrawlMark & stackMark, Boolean skipVisibility) 9461551
System.Reflection .Emit.DynamicMethod..ctor (Nom de la chaîne, Type returnType, Type [] parameterTypes, Type de propriétaire, Boolean skipVisibility) +40 Dapperx.SqlMapper.CreateParamInfoGenerator (Identité de l'identité) +537 Dapperx.SqlMapper.GetCacheInfo (Identity identity) + 376 Dapperx.d__13 1.MoveNext() +644
System.Collections.Generic.List
1..ctor (IEnumerable 1 collection) +327 System.Linq.Enumerable.ToList(IEnumerable 1 source) +58
Dapperx.SqlMapper.Query (IDbC onnexion cnn, sql String, Object param, transaction IDbTransaction, Boolean tamponne, Nullable 1 commandTimeout, Nullable 1 CommandType) ... +199

Est-il possible comment résoudre pour (.NET 4.0)? Pour autant que je comprenne ce que j'ai lu jusqu'à présent, le fournisseur doit autoriser certaines parties de la réflexion pour l'IIS qui pourraient être un risque de sécurité pour eux ...

+1

Je ne peux pas voir un moyen de faire "dapper" travail sans cette permission :( –

+0

@ Marcarcravel J'ai trouvé "le code du GAC fonctionne toujours en toute confiance" (http://msdn.microsoft.com/en-us/ library/87x8e4d1), donc si je les persuade d'installer Dapper à GAC, le problème est parti, non? .. En plus de ça .. vous pourriez distribuer Dapper avec un nom fort. Sinon, les gens doivent le signer manuellement :) – stej

+0

ça vaut vraiment le coup essayer...J'aimerais entendre comment ça se passe –

Répondre

1

Reflection.Emit qui est utilisé par Dapper est non autorisé dans Medium Trust.

Vous devriez trouver un fournisseur d'hébergement qui offre la confiance totale. discountasp.net est celui que j'ai déjà utilisé.