我的 ASP.NET 网站在开发/调试模式下运行良好,但是当我发布它时,出现以下错误:
安全异常
说明:应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请联系您的系统管理员或在配置文件中更改应用程序的信任级别。
异常详细信息: System.Security.SecurityException:请求“System.Web.AspNetHostingPermission,System,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”类型的权限失败。
我用谷歌搜索了这个错误,它出现了很多,所有的答案都说同样的话:把
<trust level="Full" originUrl=""/>
在 web.config 文件中。
对,对,对。问题是,我已经检查过这一行是否在我能找到的每个 web.config 文件中——应用程序本身,以及 32 位和 64 位的 framework\version\config\web.config 文件(我正在运行Windows 7的)。
一定有另一个秘密开关在某个地方——但是什么?
编辑
应评论者的要求,让我澄清一下:导致崩溃的页面具有来自AJAX Control Toolkit的控件。如果我注释掉 ToolkitScriptManager 和 CalendarExtender 控件,页面可以正常工作,即使在 IIS 下也是如此。
错误堆栈跟踪(如果有帮助):
[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.Web.UI.NamespaceTagNameToTypeMapper.GetControlType(String tagName, IDictionary attribs, Boolean throwOnError) +209
System.Web.UI.TagPrefixTagNameToTypeMapper.System.Web.UI.ITagNameToTypeMapper.GetControlType(String tagName, IDictionary attribs) +210
System.Web.UI.MainTagNameToTypeMapper.GetControlType2(String tagName, IDictionary attribs, Boolean fAllowHtmlTags) +242
System.Web.UI.MainTagNameToTypeMapper.GetControlType(String tagName, IDictionary attribs, Boolean fAllowHtmlTags) +17
System.Web.UI.RootBuilder.GetChildControlType(String tagName, IDictionary attribs) +22
System.Web.UI.ControlBuilder.CreateChildBuilder(String filter, String tagName, IDictionary attribs, TemplateParser parser, ControlBuilder parentBuilder, String id, Int32 line, VirtualPath virtualPath, Type& childType, Boolean defaultProperty) +119
System.Web.UI.TemplateParser.ProcessBeginTag(Match match, String inputText) +605
System.Web.UI.TemplateParser.ParseStringInternal(String text, Encoding fileEncoding) +1334