我有一个WPF应用程序,它连接到SQL Server 2014 Express LocalDB(即本地.mdf数据库文件)。
该应用程序使用Entity Framework Core库版本7.0.0-rc1-final。
这是我使用的连接字符串:
该应用在大约50台电脑上成功运行,但在两台电脑上出现以下问题:
首先,应用程序可以成功与数据库通信,但是一段时间后,如果没有活动,实例会自动停止(大约10分钟后),从那时起就无法重新连接,导致以下错误:
“您的SQL Server安装已损坏或被篡改(未知包ID)。”
手动使用上述相同命令行启动LocalDB实例后:
应用程序成功与数据库通信,直到下一次停止LocalDB实例以及其他情况。
Windows日志显示以下错误:
Windows API调用WaitForMultipleObjects返回错误代码:575。
Windows系统错误消息为:{应用程序错误} 应用程序无法正确启动 (0x%lx)。单击“确定”关闭应用程序。
SQL LocalDB日志文件提供了此通知消息:
RANU实例由于其内部超时而终止。 这仅是信息性消息。 不需要任何用户操作。
我已经安装并重新安装(Microsoft SQL Server 2014 Express以及删除了.mdf和.ldf文件),但仍然遇到相同的错误。
我注意到,在这两台有问题的计算机上,UAC被关闭; 因此,我尝试在已关闭UAC的测试计算机上重现该问题-没有任何问题的复制。
这2台有问题的计算机运行在64位Windows 10 pro下。
最后,在进一步调查后,我通过重命名应用程序文件夹或更改其位置找到了解决方法。
我如何识别解决方案?
我将整个应用程序文件夹(包括所有二进制文件)从“C:\Program Files(x86)”目录移动到“C:\”路径中的其他目录中,并且问题已经消失了。
以同样的方式,我将应用程序文件夹移回到其原始位置; 只是现在我更改了应用程序文件夹的名称,然后它又起作用了。
也许问题与目录权限有关。
尽管如此,我进行了以下步骤,但没有成功:
1.取消选中文件夹属性的“只读”选项。
2.为应用程序文件夹启用所有“安全”权限。
注意:我在一个具有各种自定义策略的组织域中工作...
我的下一步是使用某些实用程序工具提取应用程序文件夹的所有权限,然后尝试跟踪问题的根源。 你能为我建议一些工具吗?
该应用程序使用Entity Framework Core库版本7.0.0-rc1-final。
这是我使用的连接字符串:
data source=(LocalDb)\InstanceLocalDB; Initial Catalog = MyAppDB; Integrated Security=True; MultipleActiveResultSets=True; Connection Timeout = 10
我在应用程序的安装过程中安装了SQL Server LocalDB。同样,创建和启动SqlLocalDB
实例也是使用以下命令执行的:
SqlLocalDB.exe create "SqlLocalDBInstance"
SqlLocalDB.exe start "SqlLocalDBInstance"
该应用在大约50台电脑上成功运行,但在两台电脑上出现以下问题:
首先,应用程序可以成功与数据库通信,但是一段时间后,如果没有活动,实例会自动停止(大约10分钟后),从那时起就无法重新连接,导致以下错误:
“您的SQL Server安装已损坏或被篡改(未知包ID)。”
手动使用上述相同命令行启动LocalDB实例后:
SqlLocalDB.exe start "SqlLocalDBInstance"
应用程序成功与数据库通信,直到下一次停止LocalDB实例以及其他情况。
Windows日志显示以下错误:
Windows API调用WaitForMultipleObjects返回错误代码:575。
Windows系统错误消息为:{应用程序错误} 应用程序无法正确启动 (0x%lx)。单击“确定”关闭应用程序。
SQL LocalDB日志文件提供了此通知消息:
RANU实例由于其内部超时而终止。 这仅是信息性消息。 不需要任何用户操作。
我已经安装并重新安装(Microsoft SQL Server 2014 Express以及删除了.mdf和.ldf文件),但仍然遇到相同的错误。
我注意到,在这两台有问题的计算机上,UAC被关闭; 因此,我尝试在已关闭UAC的测试计算机上重现该问题-没有任何问题的复制。
这2台有问题的计算机运行在64位Windows 10 pro下。
最后,在进一步调查后,我通过重命名应用程序文件夹或更改其位置找到了解决方法。
我如何识别解决方案?
我将整个应用程序文件夹(包括所有二进制文件)从“C:\Program Files(x86)”目录移动到“C:\”路径中的其他目录中,并且问题已经消失了。
以同样的方式,我将应用程序文件夹移回到其原始位置; 只是现在我更改了应用程序文件夹的名称,然后它又起作用了。
也许问题与目录权限有关。
尽管如此,我进行了以下步骤,但没有成功:
1.取消选中文件夹属性的“只读”选项。
2.为应用程序文件夹启用所有“安全”权限。
注意:我在一个具有各种自定义策略的组织域中工作...
我的下一步是使用某些实用程序工具提取应用程序文件夹的所有权限,然后尝试跟踪问题的根源。 你能为我建议一些工具吗?