我一直在尝试在使用SQL CE 4存储简单联系表单提交的Rackspace Cloud站点(不是云服务器)上部署轻量级站点。每当我尝试访问数据库时,我都会收到Required permissions cannot be acquired
错误。
我不知道我能做什么(如果有的话)来解决它,因为我无法访问IIS或此服务器模型中的机器级配置。正如我所说,SQL CE 4应该在ASP.NET 3.5下以中等信任方式工作,但我
这里是错误转储:
无法获取所需的权限。描述:未处理 在执行当前Web请求期间发生异常。 请查看堆栈跟踪以获取有关错误的更多信息 它起源于代码。
异常详细信息:System.Security.Policy.PolicyException:必需 权限无法获得。
来源错误:
执行期间生成了未处理的异常 当前的网络请求。有关的来源和位置的信息 可以使用下面的异常堆栈跟踪来识别异常。
堆栈追踪:
[PolicyException:无法获取所需的权限。]
System.Security.SecurityManager.ResolvePolicy(证据证据, PermissionSet reqdPset,PermissionSet optPset,PermissionSet denyPset, 的PermissionSet和放大器;否认,布尔检查执行权限)+7606467
System.Security.SecurityManager.ResolvePolicy(证据证据, PermissionSet reqdPset,PermissionSet optPset,PermissionSet denyPset, 的PermissionSet和放大器;否认,Int32& securitySpecialFlags,布尔值 checkExecutionPermission)+57[FileLoadException:无法加载文件或程序集 ' System.Data.SqlServerCe,Version = 4.0.0.0,Culture = neutral, 公钥= 89845dcd8080cc91'或其中一个依赖项。失败 授予最低权限请求。 (HRESULT的例外情况: 0x80131417)] System.Reflection.Assembly._nLoad(AssemblyName fileName,String codeBase,Evidence assemblySecurity,Assembly locationHint,StackCrawlMark& stackMark,Boolean throwOnFileNotFound, 布局为内省)+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, 证据集合安全,StackCrawlMark& stackMark,布尔 forIntrospection)+127
System.Reflection.Assembly.InternalLoad(String assemblyString, 证据集合安全,StackCrawlMark& stackMark,布尔 forIntrospection)+142 System.Reflection.Assembly.Load(String assemblyString)+28
System.Web.Configuration.CompilationSection.LoadAssemblyHelper(字符串 assemblyName,布尔starDirective)+46[ConfigurationErrorsException:无法加载文件或程序集 ' System.Data.SqlServerCe,Version = 4.0.0.0,Culture = neutral, 公钥= 89845dcd8080cc91'或其中一个依赖项。失败 授予最低权限请求。 (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.BuildProvidersCompiler..ctor(VirtualPath configPath,Boolean supportLocalization,String outputAssemblyName) +54 System.Web.Compilation.CodeDirectoryCompiler.GetCodeDirectoryAssembly(VirtualPath) virtualDir,CodeDirectoryType dirType,String assemblyName,StringSet excludedSubdirectories,Boolean isDirectoryAllowed)+600
System.Web.Compilation.BuildManager.CompileCodeDirectory(VirtualPath virtualDir,CodeDirectoryType dirType,String assemblyName,StringSet excludedSubdirectories)+125
System.Web.Compilation.BuildManager.CompileCodeDirectories()+265
System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()+ 320[HttpException(0x80004005):无法加载文件或程序集 ' System.Data.SqlServerCe,Version = 4.0.0.0,Culture = neutral, 公钥= 89845dcd8080cc91'或其中一个依赖项。失败 授予最低权限请求。 (HRESULT的例外情况: 0x80131417)]
System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() +58 System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()+ 512 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager,IApplicationHost appHost,IConfigMapPathFactory configMapPathFactory,HostingEnvironmentParameters hostingParameters) 729[HttpException(0x80004005):无法加载文件或程序集 ' System.Data.SqlServerCe,Version = 4.0.0.0,Culture = neutral, 公钥= 89845dcd8080cc91'或其中一个依赖项。失败 授予最低权限请求。 (HRESULT的例外情况: 0x80131417)] System.Web.HttpRuntime.FirstRequestInit(HttpContext 上下文)+8901019
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+85 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)+333
答案 0 :(得分:1)
SQL Server Compact仅适用于ASP.NET 4.0开箱即用的中信任,而不适用于3.5 SP1。需要修改machine.config以使用3.5 SP1和中等信任 - 我的博客文章中有更多信息:http://erikej.blogspot.com/2011/10/sql-server-compact-40-under-aspnet.html