我的目标:创建一个程序,可以每天将一个sharepoint数据库复制到SQL服务器。 它应该从服务器运行,它应该每天运行。
当前状态:sharepoint网站链接到accessDB文件类型的本地副本accdb我用OleDB打开它,程序在本地运行生成表/列/数据类型并复制数据。
问题:当我采用我的解决方案并尝试将其部署到远程服务器时,它有一个弹出窗口,要求用户打开accessDB的代码段。我需要这个窗口才能死。 该过程必须是自动的,因此显然不需要人工输入。
我花了大部分时间试图让这个东西消失,程序在没有它的情况下运行。谷歌,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;
和我在连接字符串中找到的所有其他设置无济于事。
弹出窗口有一个保存信息设置,但我宁愿它在程序中,但是当我手动输入它但它确实运行时窗口不保存密码。我似乎无法接受硬编码值? 重新启动服务器并启动Credential Manager和注册表编辑器的服务没有帮助。
当我尝试对用户进行硬编码时会发生各种错误,例如:
“工作组信息文件缺失或由另一个程序独占打开”
用户没有经过认证或类似的消息(当用户应该是,并且我已经尝试了几个用户并创建新用户和管理员等非常小心地按照我的想法输入它) 我曾尝试编辑sharepoint管理员,但在我尝试编辑权限时,我将其链接到sharepoint。
没有JET注册表我必须手动安装AccessDataBaseEngine_x64。在此之前,程序没有在服务器上运行。
我很确定解决方案很简单,但到目前为止我所尝试的方法并没有奏效。
思想???
答案 0 :(得分:0)
该项目已取消,因此无需解决方案。
数据库存在一些身份验证问题,并且此方法不支持传递特定用户,因此我将其抛出并尝试使用sharepoint虚拟服务器或其他方法。我还听说较新的库会更好地支持sharepoint。