我正在尝试在中等信任级别环境(主机:Subtext)中安装Crystaltech并收到以下错误(请参阅下文)。我能够进行管理设置,但是当它试图去博客实际使用时,繁荣。
我知道我可以将环境“升级”到完全信任级别,但是我想了解错误发生的原因以及在我执行此操作之前,这种错误会产生信任。
扩展这个问题;什么是“信任级别”?
安全例外
描述: 应用程序试图执行 证券不允许操作 政策。授予此应用程序 必要的许可请联系 您的系统管理员或更改 应用程序的信任级别 配置文件。
异常详细信息: System.Security.SecurityException: 请求类型的许可 “System.Security.Permissions.SecurityPermission, mscorlib,版本= 2.0.0.0, 文化=中性, 公钥= b77a5c561934e089' 失败。
来源错误:
生成了未处理的异常 在执行当前 网络请求。有关的信息 异常的起源和位置 可以使用例外来识别 堆栈跟踪下面。
堆栈追踪:
[SecurityException:请求 类型的许可 “System.Security.Permissions.SecurityPermission, mscorlib,版本= 2.0.0.0, 文化=中性, 公钥= b77a5c561934e089' 失败。]
System.Web.Security.UrlAuthorizationModule.CheckUrlAccessForPrincipal(字符串 virtualPath,IPrincipal用户,String 动词)+47
Subtext.Framework.UrlManager.UrlReWriteHandlerFactory.GetHandlerForUrl(字符串 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路径,String pathTranslated,Boolean useAppConfig) +175 System.Web.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +128 System.Web.HttpApplication.ExecuteStep(IExecutionStep 步,布尔& completedSynchronously) 161
答案 0 :(得分: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)],这意味着它需要一个不受限制的安全权限,它没有在中等信任下运行。
答案 1 :(得分:1)
我认为除了转移到完全信任或删除对CheckUrlAccessForPrincipal()的调用并重新编译之外,还有另一种方法可以解决错误。
但从事情看来,这个特殊问题已在子文字SVN(修订版3290)中得到纠正。他们还为子文本2.0.1添加了一个新的构建任务,其中应该包含修复。我想这将在它准备就绪时发布。
答案 2 :(得分:0)
更多来自csgero的add to the mill:
http://www.kowitz.net/archive/2008/08/15/upgrading-to-subtext-2.0-fail.aspx
Phil Haack发表评论,我猜他现在正在忙于其他事情:)