0

我正在为 ActiveX 控件构建安装。当我尝试在本地标记网页(在此 VM 上的 IE8 中)中使用已部署的控件时,它会尝试访问 SQL CE 数据库,但在 Open() 调用期间因上述错误而失败。似乎缺少权限通常是导致此错误的原因,但是授予所有人对 sdf 文件(和目录)的完全控制权没有任何区别。连接代码由与其一起部署的独立应用程序共享,该应用程序可以轻松访问数据库。

以管理员身份运行 IE 确实有效,但我不想要求最终用户这样做。这是怎么回事?

更多信息:根据 procmon 的说法,iexplore.exe 正在为 sdf 文件调用 CreateFile(),请求通用读/写访问权限,使用 ShareMode 读、写,以我为用户,并因此获得 ACCESS DENIED。错误文本是

Access to the database file is not allowed. [ File name = c:\mydir\mydb.sdf ]

at System.Data.SqlServerCe.SqlCeConnection.ProcessResults(Int32 hr)
at System.Data.SqlServerCe.SqlCeConnection.Open(Boolean silent)
at System.Data.SqlServerCe.SqlCeConnection.Open()

更新:上面使用的是 CE 3.5 SP2(DLL 是 .NET 4)。怀疑问题归结为 3.5 不支持部分信任方案,我升级到 CE 4 SP1,据称支持。但是行为没有改变。有什么想法吗?

4

0 回答 0