我们有一个运行终端服务的 Windows 2008,但作为远程应用程序运行,而不是完整的桌面。
有一个数据库文件 calc.mdb,它给出“磁盘或网络错误”。如果安装了 MS Access 2003 的用户访问它,它运行得很好。但是对于通过 RemoteApp 访问的旅行用户,他们会得到“磁盘或网络错误”。
我搜索了一下,几乎每个人都得出了几个结论:
1. 这是一个网络错误。2
. 重新编译和/或压缩它。
这肯定不是 #1,因为我可以验证网络是否正常。
我重新编译和压缩了,但没有成功(此外,您可以打开数据库)。
从客户端计算机:
A) 运行另一个 RemoteApp(例如 Word、WordPad 或甚至另一个 Access DB)
B) 通过完整远程桌面登录没有问题。C
) 可以从本地安装的 Access 2003 运行数据库
D) 通过 Remote-App 打开时收到“磁盘或网络错误”。
事件日志没有显示任何我能找到的帮助信息。现在 Windows Server 中有各种日志,也许可以去别的地方看看?这似乎肯定与 RemoteApp 设置有关。
再说一遍,这不是网络问题!这种情况已经持续了几个月。我已经确认这不是网络问题。
是的,一旦我完成当前的项目,下一步就是更新这些老化的应用程序。
编辑:根据评论进行附加测试:
- 将有问题的数据库复制到本地计算机。
- 重命名为将 TEST1 添加到文件名中。
- 复制回服务器。
- 更新 RemoteApp 快捷方式以查看新文件名。
- 有用!
因此,只需复制文件并重命名即可。但是,我尝试了相同的步骤而不更改名称(基本上是将其复制到本地并直接复制/覆盖回服务器),但这并不能解决问题。
答案1
在我创建新的 2008 R2 服务器并恢复 2005 数据库的备份后,遇到了此错误和帖子。
然后我导入了所有用户、维护计划等,但出现此错误,因为我忘记将默认语言从美式英语更改为英式英语。
迁移后我必须:
- 使用以下方法刷新统计信息:exec sp_udatatestats
- 使用以下命令设置默认语言:EXEC sp_configure 'default language', 23
使用下面的代码(我应该链接它但我忘了从哪里得到它)我改变了所有用户的语言
声明@l 表(sqlCmd nvarchar(max))声明@sqlCmd nvarchar(max)插入@l 选择'alter login'+quotename(loginname)+'with default_language = British;'来自 sys.syslogins,其中 dbname ='XXXXXXXXXXXX'
从 @l 选择顶部 1 @sqlCmd = sqlcmd while (@sqlCmd 不为空) 开始打印 @sqlCmd exec(@sqlCmd) 更新 @l 设置 sqlCmd = null 其中 @sqlCmd=sqlCmd 设置 @sqlCmd = null
从 @l 选择顶部 1 @sqlCmd = sqlcmd 其中 sqlCmd 不为空 结束