当 Access 2007 数据库设置为“使用 Sharepoint 联机工作”模式时,我的应用程序无法正确连接

Posted

技术标签:

【中文标题】当 Access 2007 数据库设置为“使用 Sharepoint 联机工作”模式时,我的应用程序无法正确连接【英文标题】:When an Access 2007 Database is set to “Working online with Sharepoint” mode, my application cannot connect properly 【发布时间】:2010-06-30 16:09:02 【问题描述】:

我有一个用 C# 编写并托管在 IIS6 Win2k3 上的 ASP.NET 应用程序。此 Web 应用程序通过代码连接到 Access 2007 数据库,该数据库在表中保存 Sharepoint 列表。

要了解其工作原理,您可以访问此处:

http://sharepoint.microsoft.com/blogs/GetThePoint/Lists/Posts/Post.aspx?ID=68

问题是并提取记录。如果我将数据库设置为“脱机工作”模式,那么我的 Web 应用程序在连接和从数据库中提取记录时没有问题。

以下是一些在“脱机工作”模式下可以正常工作的连接字符串:

string objConnString = "Provider=Microsoft.ACE.OLEDB.12.0 ;Data Source=" + Server.MapPath("~/App_Data/Application.accdb"); // this works offline mode.

string objConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/App_Data/ Application.accdb ") + ";Persist Security Info=True";

In “Working online with Sharepoint” mode the application will just sit and load all day long. Here are some strings I have tried:

string objConnString = "Provider=Microsoft.ACE.OLEDB.12.0 ;Data Source=" + Server.MapPath("~/App_Data/Application.accdb"); 

 //  No credentials are passed so doesn’t work as expected.

string objConnString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/App_Data/ Application.accdb") + @"User iD=User; Password=Pass ";

//用户名和密码与Access 2007在“使用Sharepoint在线工作”模式下打开数据库时提示的用户名和密码相同。

我已将常规 Internet 用户帐户和 asp.net 帐户完全控制在此数据库中,因此该部分不应该成为问题。正如我所说,它可以在“脱机工作”模式下工作,从而证实了这一点。

这个问题似乎是当应用程序将用户名和密码传递给 Access 2007 时,它仍然不允许提取记录。当我在 Access 2007 中打开数据库时,系统会提示我输入凭据;我在不起作用的连接字符串中输入了相同的凭据。

我还想知道是否可以只将用户名和密码保存在 Access 2007 本身中,这样就根本不需要它们了。

有人有任何想法或连接字符串可以使这个东西工作吗?

提前致谢。

【问题讨论】:

我的理解是,作为一个阅读过有关使用 Access 和 Sharepoint 并且从未这样做过的人,您根本不应该更改连接字符串 - 在线/离线由 Access 本身处理,根据您使用的模式,它会根据需要更改连接字符串。 【参考方案1】:

据我了解(但我可能是错的):

当 sharepoint 连接到数据库时,它有点像在 sql 中安装数据库,其他所有内容都被拒绝访问,并且 sharepoint 服务获得了对数据库的完全控制权。

因此,我相信您只能在 sharepoint 不在线时连接到数据库。

您的指南也显示了这一点...指南解释说数据库处于脱机状态,将编辑/记录添加到表(联系人)中,然后用户应返回共享点并重新同步。

重新同步后,sharepoint 和您的访问数据库之间的数据库连接应再次断开,以便应用程序可以重新连接。

我很想知道更多关于这个场景的信息,但我猜我认为你正在尝试做这样的事情:

http://workerthread.wordpress.com/2009/02/03/using-access-2007-to-update-sharepoint-lists/

这也可能有帮助:

http://office.microsoft.com/en-us/access-help/create-access-forms-and-reports-from-a-sharepoint-list-HA010209306.aspx

【讨论】:

以上是关于当 Access 2007 数据库设置为“使用 Sharepoint 联机工作”模式时,我的应用程序无法正确连接的主要内容,如果未能解决你的问题,请参考以下文章

在 Access 2010 中查看时,Access 2007 表单中的幻影框

仅当 Access 2007 中不存在时才添加记录

是否有类似于 Access 2007 拆分表单的 .NET 控件?

在 access 2007 中编辑组合框

检查用户是不是将正确版本的 Access 设置为默认值

Access 2007:错误 2950 仅出现在 ACCDE 中