IIS 上的安全策略异常

IIS 上的安全策略异常

在默认安装 IIS(ASPNet 4.7)后,我的网站运行正常。但在安装 Maestro Panel(完整安装)后,我遇到了有关策略异常的错误消息。当我在安装过程中不选择下载 Web 服务器部分的选项时,我的问题就消失了。顺便说一句,IIS 8.0 Express 也与 Maestro Panel 一起安装。我已经有了 IIS 10。这两个版本之间是否可能发生崩溃?当我在 IIS 管理器上添加我的网站时,我发现许多通常应该在处理程序映射中的扩展定义被删除了。这很奇怪。不是吗?我正在等待您的建议来解决我的问题。

我的错误信息:

无法获取所需的权限。描述:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中起源的更多信息。

异常详细信息:System.Security.Policy.PolicyException:无法获取所需的权限。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。

堆栈跟踪:

[PolicyException:无法获取所需的权限。] System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet deniedPset, PermissionSet& denied, Boolean checkExecutionPermission) +7628755 System.Security.SecurityManager.ResolvePolicy(Evidence evidence, PermissionSet reqdPset, PermissionSet optPset, PermissionSet deniedPset, PermissionSet& denied, Int32& securitySpecialFlags, Boolean checkExecutionPermission) +57

[FileLoadException: 无法加载文件或程序集“Syncfusion.XlsIO.Base,Version=14.3350.0.49,Culture=neutral,PublicKeyToken=3d67ed1f87d44c89”或其依赖项之一。无法授予最低权限请求。 (来自 HRESULT 的异常:0x80131417)] System.Reflection.Assembly._nLoad(AssemblyName fileName、String codeBase、Evidence assemblySecurity、Assembly locationHint、StackCrawlMark& stackMark、Boolean throwOnFileNotFound、Boolean forIntrospection)+0 System.Reflection.Assembly.nLoad(AssemblyName fileName、String codeBase、Evidence assemblySecurity、Assembly locationHint、StackCrawlMark& stackMark、Boolean throwOnFileNotFound、Boolean forIntrospection)+43 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef、Evidence assemblySecurity、StackCrawlMark& stackMark、Boolean forIntrospection)+127 System.Reflection.Assembly.InternalLoad(String assemblyString、Evidence assemblySecurity、StackCrawlMark& stackMark, Boolean forIntrospection) +142 System.Reflection.Assembly.Load(String assemblyString) +28 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String assemblyName, Boolean starDirective) +46

[ConfigurationErrorsException: 无法加载文件或程序集“Syncfusion.XlsIO.Base,Version=14.3350.0.49,Culture=neutral,PublicKeyToken=3d67ed1f87d44c89”或其依赖项之一。无法授予最低权限请求。 (来自 HRESULT 的异常:0x80131417)] System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 assemblyName,布尔 starDirective)+613 System.Web.Configuration.CompilationSection.LoadAllAssembliesFromAppDomainBinDirectory()+203 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo ai)+105 System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection compConfig)+178 System.Web.Compilation.WebDirectoryBatchCompiler..ctor(VirtualDirectory vdir)+163 System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir,布尔 ignoreErrors)+53 System.Web.Compilation.BuildManager.BatchCompileWebDirectory(VirtualDirectory vdir,VirtualPath virtualDir,布尔 ignoreErrors) +175 System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath) +86 System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath,布尔 noBuild,布尔 allowCrossApp,布尔 allowBuildInPrecompile) +261 System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context,VirtualPath virtualPath,布尔 noBuild,布尔 allowCrossApp,布尔 allowBuildInPrecompile) +101 System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath,HttpContext context,布尔 allowCrossApp,布尔 noAssert) +126 System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath,Type requiredBaseType,HttpContext context, Boolean allowCrossApp,Boolean noAssert) +62 System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context,String requestType,VirtualPath virtualPath,String physicalPath) +33 System.Web.UI.PageHandlerFactory.GetHandler(HttpContext context,String requestType,String virtualPath,String path) +37 System.Web.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +307 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completeSynchronously) +155

答案1

该异常表示在部分信任环境中断言代码访问安全性失败。部分信任已经过时,并且已经存在 10 多年了。

您可能需要检查您的 .config 文件以确保没有使用 CLR 2.0 之类的过时内容。或者任何与代码访问安全相关的内容。

更多信息:

https://www.syncfusion.com/kb/2407/failed-to-load-the-syncfusion-assembly-due-to-exception-failed-to-grant-minimum-permission

相关内容