【问题标题】:Connection String problems with OLEDB on a Remote Server远程服务器上 OLEDB 的连接字符串问题
【发布时间】:2014-03-06 13:27:51
【问题描述】:

我的目标:创建一个可以每天将共享点数据库复制到 SQL 服务器的程序。 它应该从服务器运行,并且应该每天运行。

当前状态:sharepoint 网站链接到 accessDB 文件类型 accdb 的本地副本,我用 OleDB 打开它,程序在本地运行,生成表/列/数据类型并复制数据。

问题:当我采用我的解决方案并尝试将其部署到远程服务器时,它会在打开 accessDB 的代码段中弹出一个窗口,询问用户。我需要这个窗口死掉。 该过程必须是自动的,因此它显然不需要人工输入来运行。

我花了一天的大部分时间试图让这个东西消失,让程序在没有它的情况下运行。 google、StackOverflow、connectionstrings.com 或 MSDN 以及许多其他随机网站都没有运气。


相关代码:

     public void openDataFromAccess(string connectionString, string tableName, string connectionString2)
     {            
        string sqlQuery = "SELECT * from [" + tableName +"]";
        try
        {
            using (DataTable dt = new DataTable())
            {
                using (OleDbConnection conn = new OleDbConnection(connectionString))
                using (OleDbCommand cmd = new OleDbCommand(sqlQuery, conn))
                using (OleDbDataAdapter adapter = new OleDbDataAdapter(cmd))
                {
                    cmd.CommandType = CommandType.Text;
                    cmd.Connection.Open();
                    adapter.SelectCommand.CommandTimeout = 240;
                    adapter.Fill(dt);
                    adapter.Dispose();
                }

默认连接字符串:

    string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Migration\Sharepoint Access SQL Batch Job\Database2.accdb;Jet OLEDB:Database Password=password";

我尝试过的事情包括:

   User Id=userid;Password=pass
   Persist Security Info=False;
   Delay Validation=TRUE
   Integrated Security=true;  
   Mode=Read;

以及我在连接字符串中可以找到的所有其他设置均无济于事。


弹出窗口有一个保存信息设置,但我希望它在程序中,但是当我手动输入时,窗口不会保存密码,但它会运行。我似乎无法让它接受硬编码的值??? 重新启动服务器并启动凭据管理器和注册表编辑器的服务没有帮助。

当我尝试对用户进行硬编码时,会出现各种错误,例如:

“工作组信息文件丢失或被其他程序独占打开”

用户未经认证或类似的消息(当用户应该是,我已经尝试了几个用户并创建了新用户和管理员等。非常小心地输入它,因为我认为是正确的) 我曾尝试编辑共享点管理员,但在我尝试编辑权限时,它会将我链接到共享点。

没有 JET 注册表,我必须手动安装 AccessDataBaseEngine_x64。该程序在此之前没有在服务器上运行。

我相当确定解决方案会很简单,但到目前为止我尝试过的方法都没有奏效。

想法???

【问题讨论】:

  • 请问,为什么不使用内置的 SQL Server Management Studio 功能进行夜间备份并结合 chronjob 将备份导入另一个 sql server 实例?
  • 好问题!那是我尝试的第一件事。 -_- SQL Server Management Studio 无法识别文件类型 accdb,并且似乎不支持此文件类型。我尝试将其转换为受支持的 .mbd,但它会抛出“无法识别的数据库格式”,也没有运气在谷歌上搜索解决方案 =/ 如果您知道如何解决此错误,请告诉我。
  • 为什么它必须是.mdb格式?标准的 .bak 备份文件还不够吗?附加问题:如果您只想将 Sharepoint 数据库从一台服务器复制到另一台服务器,为什么不使用镜像?

标签: c# sharepoint connection-string oledb


【解决方案1】:

项目已取消,因此无需解决方案。

数据库在身份验证方面存在一些问题,并且此方法似乎不支持传递特定用户,因此我将其扔掉并尝试使用共享点虚拟服务器或其他方法。我还听说较新的库将更好地支持共享点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-02
    • 2023-03-09
    • 2016-04-29
    • 2012-03-04
    • 2014-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多