无法访问Windows 2012服务器中“本地Appdata”文件夹中存储的应用程序数据库文件

时间:2019-01-03 13:45:56

标签: vb.net windows-server-2012-r2

我有一个小的vb.net应用程序,该应用程序将设置存储在SQL Server紧凑型数据库文件abc.sdf中。安装时,我将此文件存储在Local Appdata文件夹中,该文件夹转换为

“ C:\ Users \\ AppData \ Local \\ abc.sdf”

在Windows Server 2012中,当我以非管理员用户身份运行应用程序时,应用程序将引发错误“找不到数据库文件”。使用“以管理员身份运行”选项运行应用程序时,没有出现此错误。

此问题仅适用于Windows Server,该应用程序正在运行,在Windows 7,8和10中没有任何问题。

我尝试过更改文件的所有权,向所有人,用户等授予完全控制权限,但是没有一个起作用。

如果以非管理员用户身份登录,则无法查看localappdata文件夹中的文件。但是当我以管理员用户身份登录时,它正在显示文件。

我对Windows Server 2012不太了解,将不胜感激。

1 个答案:

答案 0 :(得分:0)

您是否需要将文件保存在appdata中,或者可以将其保存在程序所在的文件中?如果是,则可以按以下方式访问它:

Dim Filename As String = $"{AppDomain.CurrentDomain.BaseDirectory}abc.sdf"

如果要求将其放在本地appdata文件夹中,则可以尝试:

Dim Filename as String = $"{GetFolderPath(SpecialFolder.ApplicationData)}Local\abc.sdf"

您还需要在代码顶部插入:Imports System.Environment