Domanda

Sto riscontrando un problema con l'esecuzione di Subsonic con un livello di fiducia medio e non so se sto eseguendo una query sbagliata - se c'è una parte di subsonic 3.0.3 a cui non piace il livello di fiducia medio qualcuno può dirmi? Qualcun altro ha pubblicato qualcosa di simile qualche tempo fa e non c'è stata una vera risposta sul fatto che esistesse o meno (il bug). Rob ha affermato che era stato testato, mentre qualcun altro ha dichiarato di dover ancora correggere un bug ( SubSonic 3.0 - Medium Trust )

Sto usando una query simile a questa:

List<Data.Blog> objBlogPosts = ((from blog in db.Blogs
                                            orderby blog.blogID descending 
                                             select blog).Take(10).ToList());

e l'errore che sto ricevendo è:

System.MethodAccessException: 
System.Runtime.CompilerServices.StrongBox`1..ctor(System.__Canon) --->
System.Security.SecurityException: Request failed.
at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Assembly asm, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed)
at System.Security.CodeAccessSecurityEngine.ThrowSecurityException(Object assemblyOrString, PermissionSet granted, PermissionSet refused, RuntimeMethodHandle rmh, SecurityAction action, Object demand, IPermission permThatFailed)
at System.Security.CodeAccessSecurityEngine.CheckSetHelper(PermissionSet grants, PermissionSet refused, PermissionSet demands, RuntimeMethodHandle rmh, Object assemblyOrString, SecurityAction action, Boolean throwException)
at System.Security.PermissionSetTriple.CheckSetDemand(PermissionSet demandSet, PermissionSet& alteredDemandset, RuntimeMethodHandle rmh)
at System.Security.PermissionListSet.CheckSetDemand(PermissionSet pset, RuntimeMethodHandle rmh)
at System.Security.PermissionListSet.DemandFlagsOrGrantSet(Int32 flags, PermissionSet grantSet)
at System.Threading.CompressedStack.DemandFlagsOrGrantSet(Int32 flags, PermissionSet grantSet)
at System.Security.CodeAccessSecurityEngine.ReflectionTargetDemandHelper(Int32 permission, PermissionSet targetGrant, CompressedStack securityContext)
at System.Security.CodeAccessSecurityEngine.ReflectionTargetDemandHelper(Int32 permission, PermissionSet targetGrant)
The action that failed was:
Demand
The type of the first permission that failed was:
System.Security.PermissionSet
The demand was for:
<PermissionSet class="System.Security.PermissionSet"
version="1"
Unrestricted="true"/>  

Grazie in anticipo. Adoro i nuovi subsonic e lambda ecc., Ho solo problemi con la distribuzione sul mio primo host condiviso :(

applausi Doug

È stato utile?

Soluzione

Subsonic NON FUNZIONA in scenari di hosting condiviso (anche quelli con una fiducia media comunque). Il problema è questa linea ...

Func<IQueryable> fn = efn.Compile();

Forse aspetta 3.1 o passa a 2.0 poiché subsonic non è assolutamente un'opzione al momento. È stata una grande idea ma è triste che le barbe al collo non parlino ai loro utenti di questo problema.

Almeno mi hanno insegnato a includere

<system.web>
    <trust level="Medium" />
</system.web>

nel mio web.config per qualsiasi sviluppo per siti di hosting condiviso.

Altri suggerimenti

Modifica: il bug ora è stato risolto, la versione 3.1 supporterà la fiducia media quando viene rilasciata e se estrai l'ultima versione del sorgente da github e la costruisci da solo dovresti trovare che ora funziona con una fiducia media.

Sembra che tu stia affrontando questo bug . Se è possibile aggiungere ulteriori dettagli alla segnalazione di bug, ad esempio il caso di test più piccolo possibile, sarebbe utile.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top