Problema di affidabilità media Subsonic 3.0
-
08-07-2019 - |
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
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.