【问题标题】:Store db file in shared directories将 db 文件存储在共享目录中
【发布时间】:2012-01-29 07:02:20
【问题描述】:

当我将我的应用程序安装到具有窗口 7 的客户端计算机时,然后给我错误,即 db 文件没有读取或写入权限。

我怎样才能授予该文件的权限?

i already read other solution 我应该将 db 文件存储在每个用户都具有读写权限的共享目录中。

但我想将我的数据库文件存储到我的程序文件文件夹中,并希望授予该文件权限,以便它也可以在窗口 7 中工作。

谢谢

已编辑:--

现在你们所有人都建议将数据库文件保存在共享文件夹中,所以我的新问题是现在

在 C# 中进行设置时如何将 .mdf 文件存储在共享文件夹中。我应该在应用程序配置文件中进行哪些更改。目前它在我的应用程序文件夹中存储程序文件,我的应用程序没有读写权限。

目前我的 mdf 文件在根目录下,我的应用程序配置文件有这行代码:

<add name="HotelReservationSystem.Properties.Settings.HotelReservationDBConnectionString"
      connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\HotelReservationDB.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"
      providerName="System.Data.SqlClient" />

【问题讨论】:

  • 没有充分的理由将信息存储在 Program Files 文件夹中。这就是为什么它在 Windows Vista 和更高版本中变得更加困难的原因。安全风险使其完全不合理。确切地说,您认为像其他人一样使用共享目录有什么问题?
  • @CodyGray 请您建议任何链接我应该在我的代码中更改什么或进行设置以将 db 文件存储在共享目录中并更改 app.config 文件
  • 我不知道你现在是怎么做的,那我应该怎么告诉你要改变什么?无论您在何处指定路径,都将其更改为其他路径。
  • 请你来聊天,这样我就可以很容易地告诉你这一切。

标签: c# windows-7 installation sql-server-2008-express


【解决方案1】:

不幸的是,在 Windows XP 之后,这是不可能的。为了让用户写入 Program Files 中的任何内容,他们需要管理员访问权限。他们不仅需要管理员访问权限,还需要 UAC 权限。

所以你必须选择

  1. 将数据库放在像 ApplicationData 这样的读/写文件夹中
  2. 通过在 app.manifest 中添加设置,让您的应用以管理员 UAC 权限运行

【讨论】:

  • 有任何与在 vs2010 中使用 windows xp window7 的 mdf 文件进行设置相关的链接
  • 或者我怎样才能将我的 mdf 文件放在那些文件夹中?因为我只是通过添加文件选项将这些文件添加到我的设置项目中
  • 没什么不好的。除非你是一个程序员,认为遵循规范是愚蠢的——这在 XP 之前已经改变了。 Dumbo 程序员忽略了它。有一个特定的文件夹。
  • @TomTom 我只在 XP 之后编程,所以我只假设你可以做到这一点(不,我不会在 XP 下测试我的应用程序,因为你真的应该在这一生中停止使用 XP)。我只是习惯放置东西是UAC安全的地方
  • @rahularyansharma 我使用 INNO 安装程序或 Installshield 并在其中设置数据库路径
猜你喜欢
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 2018-08-24
  • 1970-01-01
  • 2021-09-23
  • 2022-06-11
  • 1970-01-01
  • 2013-07-20
相关资源
最近更新 更多