gpt4 book ai didi

c# - SQL Server CE 在某些计算机上速度极慢

转载 作者:行者123 更新时间:2023-12-02 21:41:33 26 4
gpt4 key购买 nike

我构建了一个默认使用 SQL Server CE 4.0 的应用程序,但也可以使用单独的 SQL Server (SQL Server Express)。

我已经将其部署到办公室的大约 10 台计算机上,除了其中 2 台计算机之外,它运行良好:当然是副总裁和 QA 人员:-/

在这些计算机上,每次数据库访问大约需要 30 秒!如果我安装 SQL Server Express 2008 R2,并告诉我的应用程序使用它,那么它运行得非常快。

  • 两台有问题的机器都是WinXP SP3,但大多数工作电脑也是XP。
  • 我正在使用 C#.NET 4.0 应用程序通过 ClickOnce 使用 SQL Server CE 的私有(private)部署。
  • 我使用 DbProviderFactory 允许使用相同的查询文本(或数据适配器)访问 SQL Server Express 或 SQL Server CE。
  • 大多数查询都很简单。一些使用DataAdapter
  • 几乎所有查询最终都会返回数据,但我在日志文件中看到一个查询返回空数据,没有错误/异常,但应该有大约 20-40 行和大约 80 列。
  • 对于每个查询,我都会创建、打开和关闭连接。我不清楚 SQL Server CE 是否需要/推荐/不推荐这样做。

我不明白为什么这个应用程序可以在大多数电脑上运行,但不能在少数电脑上运行。

欢迎任何想法。

谢谢!

最佳答案

此问题的中间原因和解决方法是用户访问受密码保护的数据库使用的 .NET 加密文件。通过更改文件夹的权限解决了该问题。

您可以使用“以管理员身份运行”打开命令提示符并发出此命令 (Win XP)

 cacls.exe "C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys" /E /G Everyone:R

我还在 SQLCE 连接字符串代码附近添加了此注释:

 /**************************************************************************************
* To get rid of the slowdown on non-admin users you need to grant them read access to this folder:
* C:\Documents and Settings\All Users\Application Data\Microsoft\Crypto\RSA\MachineKeys (XP, 2003)
* C:\Users\All Users\Microsoft\Crypto\RSA\MachineKeys (Windows 7 or 2008)
**************************************************************************************/

这里提到了这个问题:SqlCe opens slow under a limited user account in Windows XP

这里:http://social.msdn.microsoft.com/Forums/sqlserver/en-US/eb6a01a7-0bfd-41e3-b4c8-34581c5ccaa3/sql-compact-4-locks-up-30seconds-when-accessing-encrypted-database-on-windows-xp-when-running-in?forum=sqlce

注意:在有问题的计算机上,...\MachineKeys 文件夹在 WinExplorer 中可见,但实际上无法读取文件。 “每个人”都有“特殊”权限,不允许“读取”。我认为 .NET 可能是由域管理员安装的,而不是本地管理员安装的。

这只是一个解决方法。我仍然不明白为什么该文件夹在几台机器上有奇怪的权限,但在其余机器上没有。我正在使用 ClickOnce 进行部署,因此无法自动更改文件夹权限。

我只在 XP 上看到过这个问题,其他帖子暗示这只是 XP 问题,所以希望我不必担心它太久......

关于c# - SQL Server CE 在某些计算机上速度极慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20354917/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com