2008-10-06 3 views
0

Я пытаюсь установить Subtext в среде среднего уровня доверия (хост: Crystaltech), и я получаю следующую ошибку (см. Ниже). Я смог выполнить настройку администрирования, но когда он пытается перейти в блог для фактического использования, бум.Установка подтекста дает ошибку в среднем уровне доверия

Я знаю, что смогу «обновить» среду до полного уровня доверия, но я хочу понять, почему происходит ошибка, и последствия этого перехода на доверие fUll до того, как я это сделаю.

Чтобы расширить этот вопрос; каковы «уровни доверия»?

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

ответ

1

Я не думаю, что есть другой способ обойти эту ошибку, кроме как перейти на полное доверие или удалить вызов CheckUrlAccessForPrincipal() и перекомпилировать.

Но, судя по всему, эта проблема уже исправлена ​​в подтексте SVN (редакция 3290). Они также добавили новую задачу сборки для подтекста 2.0.1, которая должна включать исправление. Думаю, это будет выпущено, когда оно будет готово.

1

Уровни доверия действительно просто указывают на некоторые файлы security.config. Уровни доверия dafault определены в C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG \ web.config, "Средний" доверие, указывающее на web_mediumtrust.config.

Что касается исключения, то взглянем на System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal() с отражателем, что метод присваивается с помощью [SecurityPermission (SecurityAction.Demand, Unrestricted = true)], что означает, что это требует неограниченное разрешение на безопасность, которое не работает под средним доверием.

+0

Я рассмотрю это, спасибо. – Craig 2008-10-06 16:53:04