我不学习没人要 2023-11-21 08:58 采纳率: 50%
浏览 21
已结题

C#项目发布、部署的坑

问题描述
C#项目在本地可以正常访问数据库,部署到IIS上无法访问数据。
环境
数据库不是本地,使用Access数据管理
解决问题
项目部署在IIS上能正常访问数据


System.Data.OleDb.OleDbException (0x80004005): Microsoft Jet 数据库引擎打不开文件'\\192.168.1.19\中心\成绩表.mdb'。  它已经被别的用户以独占方式打开,或没有查看数据的权限。
   在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString constr, OleDbConnection connection)
   在 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)
   在 System.Data.ProviderBase.DbConnectionFactory.CreateConnection(DbConnectionOptions options, DbConnectionPoolKey poolKey, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection, DbConnectionOptions userOptions)
   在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup, DbConnectionOptions userOptions)
   在 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection, TaskCompletionSource`1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)
   在 System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   在 System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource`1 retry, DbConnectionOptions userOptions)
   在 System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
   在 System.Data.OleDb.OleDbConnection.Open()

权限,数据库文件,以及Temp的权限都已经给了。独占,项目在vs中可以正常访问数据库;部署在IIS上不行

  • 写回答

13条回答 默认 最新

  • 叫兽-郭老师 Java领域新星创作者 2023-11-21 10:16
    关注

    大概率,ip限制或者防火墙之类的原因。
    如果连不上,那么可以看看具体连不上的报错信息。

    以下是人工智能:
    问题出现在部署到 IIS 上后无法访问数据库,这可能涉及到一些权限、连接字符串或者 IIS 配置的问题。以下是一些建议:

    1. 权限问题: 确保 IIS 应用程序池的身份验证用户(通常是 IIS AppPool\YourAppPoolName)具有足够的权限访问数据库。在数据库服务器上设置对应的数据库访问权限,包括读取、写入等权限。

    2. 连接字符串: 确保在项目中使用的数据库连接字符串是正确的。连接字符串中的服务器地址、数据库名称、用户名和密码等信息都需要检查是否与数据库服务器匹配。

    3. 32位/64位兼容性: 如果你的应用程序是以 32 位应用程序池运行的,而数据库驱动程序是 64 位的,或者反之,可能会导致连接问题。确保应用程序池和数据库驱动程序的位数匹配。

    4. IIS 配置: 在 IIS 管理器中,确保你的应用程序池已启用 32 位应用程序。选择应用程序池 -> 右键点击 -> 高级设置 -> 启用 32 位应用程序。

    5. 检查错误日志: 在 IIS 上查看错误日志,它可能提供有关连接问题的更多详细信息。你可以在 IIS 日志或 Windows 事件查看器中查找相关的错误信息。

    6. ODBC 驱动: 如果你的 Access 数据库是通过 ODBC 连接的,确保在 IIS 上也安装了相应版本的 ODBC 驱动程序,并且连接字符串配置正确。

    7. Windows身份验证: 如果你的数据库使用 Windows 身份验证,确保 IIS 应用程序池的身份验证用户具有足够的权限。你可能需要使用连接字符串中的 Trusted_ConnectionIntegrated Security 选项。

    8. Firewall 和网络问题: 确保数据库服务器的防火墙允许来自 IIS 服务器的连接。另外,检查网络是否正常,确保能够从 IIS 服务器访问数据库服务器。

    通过逐一检查上述问题,你应该能够找到导致部署到 IIS 上无法访问数据库的具体原因。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(12条)

报告相同问题?

问题事件

  • 系统已结题 11月29日
  • 已采纳回答 11月21日
  • 修改了问题 11月21日
  • 修改了问题 11月21日
  • 展开全部

悬赏问题

  • ¥15 依据报错在原代吗格式的基础上解决问题
  • ¥15 在虚拟机中安装flash code
  • ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
  • ¥20 verilog状态机方法流水灯
  • ¥15 pandas代码实现不了意图
  • ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
  • ¥25 LT码在高斯信道下的误码率仿真
  • ¥45 渲染完成之后将物体的材质贴图改变,自动化进行这个操作
  • ¥15 yolov5目标检测并显示目标出现的时间或视频帧
  • ¥15 电视版的优酷可以设置电影连续播放吗?