2008-10-06 9 views
0

J'essaie d'installer Subtext dans un environnement de niveau de confiance moyen (hôte: Crystaltech) et j'obtiens l'erreur suivante (voir ci-dessous). J'ai été capable de faire la configuration de l'administration, mais quand il essaie d'aller sur le blog pour une utilisation réelle, boom. Je sais que je pourrais "mettre à jour" l'environnement à un niveau de confiance complet, mais je veux comprendre pourquoi l'erreur se produit et les ramifications de ce déplacement à confiance avant de le faire.L'installation du sous-système donne une erreur au niveau de confiance moyen

Pour développer cette question; quels sont les "niveaux de confiance"?

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.Security.Permissions.SecurityPermission, mscorlib, 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.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.]
System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal(String virtualPath, IPrincipal user, String verb) +47
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.GetHandlerForUrl(String url) +66
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.ProcessHandlerTypePage(HttpHandler item, HttpContext context) +143
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.GetHandler(HttpContext context, String requestType, String url, String path) +340
System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig) +175 System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +128 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +161

Répondre

1

Je ne pense pas qu'il y ait Une autre façon de contourner l'erreur autre que le passage à l'approbation totale ou la suppression de l'appel à CheckUrlAccessForPrincipal() et la recompilation.

Mais par l'apparence des choses, ce problème particulier a déjà été corrigé dans le sous-texte SVN (révision 3290). Ils ont également ajouté une nouvelle tâche de construction pour le sous-texte 2.0.1 qui devrait inclure le correctif. Je suppose que cela sera publié quand il sera prêt.

1

Les niveaux de confiance ne sont en fait que des pointeurs vers des fichiers security.config. Les niveaux de confiance dafault sont définis dans C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ web.config, l'approbation "Moyenne" pointant vers web_mediumtrust.config. Comme pour l'exception, en jetant un oeil à System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal() avec réflecteur révèle que la méthode est attribuée avec [SecurityPermission (SecurityAction.Demand, Unrestricted = true)], ce qui signifie qu'il nécessite une autorisation de sécurité illimitée, qu'elle n'exécute pas sous une approbation moyenne.

+0

Je vais examiner cela, merci. – Craig

Questions connexes