2009-11-25 138 views
0

我需要打开到远程访问数据库的连接。 在本地环境中远程的acess db工作得很好。 当我运行从生产服务器(其他服务器),这个应用程序是失败的消息连接通过c#访问#

“ 它已经被其他用户以独占方式打开,或者您需要权限来查看其数据 。”

我的代码:

conString = 
     @"Provider=Microsoft.JET.OLEDB.4.0;" 
    + @"data source=" \\150.248.248.38\d$\TestApp\vending.mdb;Jet OLEDB:Database Password=1234;"; 

     OleDbConnection connAccess = new OleDbConnection(conString); 


    try 
    { 

     connAccess.Open(); 

     objDiningRoom.Connection = connAccess; 

     .... 
    } 
    catch (Exception ex) 
    { 


    } 
    finally 
    { 
     connAccess.Close(); 
     connAccess.Dispose(); 
    } 

*它不是在其他地方 感谢

+0

你有这个其他接入服务器?如果您在START |中输入“\\ 150.248.248.38 \ d $ \ TestApp \”运行并单击确定,是否打开显示目标文件夹的资源管理器窗口?如果是这样,你可以右键单击并创建一个新的文本文件?如果没有,您有权限问题。我肯定会建议不要使用管理员共享来访问 - 非管理员用户永远不会访问那个,只有管理员。 – 2009-11-26 04:22:27

回答

0

这看起来是一个权限问题打开。 请确保您提供IUSR帐户(或ASP.NET运行的任何帐户)对您的数据库的读/写权限。

0

你可以试试:here 从那里复制:

  • 当您的数据库文件被其他应用程序(通常MS
    接入)开通专门
    常见。关闭所有
    使用此数据库并重试的应用程序。
  • 如果正在使用的Internet信息
    服务器(IIS),(通常是IUSR)帐户可能会出现此错误,不
    没有正确的Windows NT
    权限基于文件的数据库 或文件夹包含
    文件。
  • 检查文件和文件夹的权限。确保你有 有能力创建和/或 销毁任何临时文件。 通常在与数据库 相同的文件夹中创建临时文件 ,但该文件也可能在 其他文件夹(例如/ Winnt)中创建。如果您使用 数据库(UNC或映射驱动器) 的网络路径,请检查共享上的权限, 文件和文件夹。
  • 检查以确保文件和数据源名称(DSN) 未标记为“独占”。
  • 简化。使用使用本地驱动器号的系统DSN。如果需要测试
    ,则将 数据库移动到本地驱动器。
  • “其他用户”可能是Visual InterDev。关闭包含数据连接到数据库的数据
    的任何Visual InterDev
    项目。访问本地的Microsoft Access
    数据库链接到一个表,其中
    表在
    网络服务器上的Access数据库时,也可能会出现
  • 此错误。在这种情况下,
    请参考下面的文章 Microsoft知识库中的 解决方法:Q189408 PRB:ASP无法 访问网络文件在IIS 4.0