Unblock delle assembly

Oggi mi è capitato un errore alquanto curioso che, se non si sta molto attenti, può portare via parecchio tempo; ma partiamo con ordine.

Il buon Mauro mi ha passato un set di librerie da utilizzare in un applicativo interno che avevo necessità di aggiornare, ed il trasferimento (per puri motivi di pigrizia) è avvenuto via messenger.  Ovviamente, senza pensarci su troppo, ho copiato le nuove librerie all’interno della bin in modo da aggiornare l’applicazione all’ultima versione ma, dopo il primo avvio, ricevevo la seguente eccezione:

Security Exception

Description: The application attempted to perform an operation not allowed by the security policy.  To grant this application the required permission please contact your system administrator or change the application's trust level in the configuration file.

Exception Details: System.Security.SecurityException: Request for the permission of type 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[SecurityException: Request for the permission of type 'System.Web.AspNetHostingPermission, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
   System.Reflection.Assembly._GetType(String name, Boolean throwOnError, Boolean ignoreCase) +0
   System.Reflection.Assembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase) +42
   System.Web.UI.Util.GetTypeFromAssemblies(ICollection assemblies, String typeName, Boolean ignoreCase) +145
   System.Web.UI.TemplateParser.GetType(String typeName, Boolean ignoreCase, Boolean throwOnError) +73
   System.Web.UI.TemplateParser.ProcessInheritsAttribute(String baseTypeName, String codeFileBaseTypeName, String src, Assembly assembly) +111
   System.Web.UI.TemplateParser.PostProcessMainDirectiveAttributes(IDictionary parseData) +279

Il messaggio era alquanto preoccupante e, dopo vari check della configurazione (full trust mode, etc), ho trovato la soluzione nell’unblock del file; di fatto, essendo questi arrivati da una fonte non sicura, Windows ha giustamente pensato di impedirne l’utilizzo salvo previa autorizzazione dell’utente stesso, che può essere effettuata tramite la finestra delle proprietà, come da screenshot seguente:

SNAGHTML55018f8


Comments