在ASP .Net中访问没有文件系统访问权限的MDB文件

时间:2014-05-21 08:08:08

标签: c# asp.net ms-access

我有来自第三方程序的输入MDB文件。我必须在我的asp .net应用程序中阅读它,然后向最终用户询问一些相关的表单。

目前,我可以在文件系统上编写mdb文件并读取它,它可以工作,但有时这个功能不起作用,我必须重新启动服务器。

客户希望外部化服务器,我无法写入文件系统甚至重新启动它,所以我想从MemoryStream中读取asp.net中的mdb文件,或者执行转换最像XML的可读格式,但我认为不可能。

所以我正在寻找预处理访问文件的解决方案。

我不认为可以通过javascript(仅限vbscript)阅读它。

我想象的唯一方法是:

  • call a special application with a url code喜欢app:// id将id传输到桌面上的特殊应用程序,他将选择他的文件,内容将通过网络服务传输到网络应用

  • 之后,该人应该点击一个按钮,他可以处理与该数据相关的不同表格

对于最终用户来说,这听起来很复杂

有人对此案有一些感觉或想法吗?

修改

mdb文件通过包含在Web表单中的http表单上传。

有时,上传后,应用程序会抛出异常而无法使用c:\​​ windows \ temp。我有一个错误:在指定文件上无法访问。

我没有更好的信息,因为应用程序位于客户的内部网络中,我不在那里。所以我不得不让他们重新启动它。

1 个答案:

答案 0 :(得分:1)

引用:Configuring Permissions for an Access Database

  

当Web应用程序使用Access数据库时,应用程序必须   拥有.mdb文件的读取权限,以便应用程序可以访问   数据。此外,应用程序必须具有写入权限   包含.mdb文件的文件夹。需要写入权限   因为Access会创建一个扩展名为.ldb的附加文件   其中它维护有关并发数据库锁的信息   用户。 .ldb文件是在运行时创建的。 [...]   因此,要在ASP.NET Web应用程序中使用Access数据库,   您必须配置包含Access数据库的文件夹   拥有本地ASPNET用户的读写权限   帐户。

换句话说,如果您没有读写权限,则无法使用.mdb。

有以下选项

  1. 如果由于安全原因无法完成权限,但您的Web服务器可以访问.mdb文件位置(两者都位于同一网络中),那么您的客户端可以设置一个预定作业,该作业将.mdb备份/复制到另一个asp.net可以拥有使用.mdb权限的位置。但是,这会将备份.mdb同步到生产.mdb。
  2. 设置webservice以更新.mdb。它将托管在.mdb所在的服务器上,并具有所有必需的权限。您的应用程序将通过Web服务与.mdb一起使用,并且不需要.mdb的任何权限。
  3. 用SQL Server Express替换.mdb