我有一个小的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不太了解,将不胜感激。
答案 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