You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IIS部署dotnetcore项目无法编辑共享Access数据库 本地运行正常

问题解决:IIS部署.NET Core项目访问局域网共享Access数据库报错

报错信息:System.Data.OleDb.OleDbException (0x80004005),错误描述为已由其他用户以独占方式打开,或无访问权限

报错根因

  • Visual Studio本地调试时,项目会以当前登录Windows用户的身份运行,该账号默认已经拥有局域网共享路径\\computername\accdb的读写权限,同时也有权限创建、修改Access数据库配套的.ldb/.laccdb临时锁文件
  • 项目发布到IIS后,站点会以对应应用程序池的内置身份(默认是IIS AppPool\你的应用程序池名称这类本地虚拟账户)运行,这类账户没有局域网共享资源的访问权限,也无法操作共享路径下的锁文件,因此触发权限报错

分步解决方案

1. 修改IIS应用程序池运行身份

  • 打开IIS管理器,找到部署站点对应的应用程序池,右键选择「高级设置」
  • 找到「进程模型」分组下的「标识」选项,点击右侧的省略号按钮
  • 选择「自定义账户」,点击「设置」,输入有权限访问该局域网共享路径的Windows账号用户名和密码(可以是数据库所在计算机的本地账号,也可以是同域下的域账号,需提前确认该账号对\\computername\accdb路径有读写权限)
  • 保存设置后重启对应应用程序池

2. 配置共享文件夹的访问权限

  • 打开数据库所在计算机的共享文件夹属性,切换到「共享」选项卡,点击「高级共享」-「权限」,给上述自定义账号添加「完全控制」权限
  • 切换到「安全」选项卡,同样给该账号添加「读取、写入、修改」的权限
  • 单独确认Access.accdb数据库文件本身的权限,也给该账号开放读写权限,避免权限继承失效

3. 排除文件独占锁定问题

  • 确认没有其他用户正在以独占方式打开该.accdb数据库
  • 如果之前异常运行残留了.laccdb临时锁文件,先删除残留文件后再测试

4. 验证连接字符串配置

  • 确认发布后的appsettings.json中数据库连接字符串配置正确,示例配置参考:
"ConnectionStrings": {
  "AccessDb": "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\\\computername\\accdb\\你的数据库名称.accdb;Persist Security Info=False;"
}

注意配置文件中路径的反斜杠需要转义,需写为\\\\

内容的提问来源于stack exchange,提问作者NiSu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 06:09:02