SQL CE2.0与SQL Server2000数据库同步有关问题(被折磨了两天两夜没有解决)
SQL CE2.0与SQL Server2000数据库同步问题(被折磨了两天两夜没有解决)!
环境:
Windows XP Professional SP2
Visual Studio 2005 SP1
SQL Server 2000 SP4
SQL Server CE 2.0 for SQL2000 SP4
1.数据库(TestDB)已经发布
2.快照文件夹已经共享,并具有读写权限
3.虚拟目录已经建立,并且在模拟器的浏览器访问正常(出现SQL Server CE Server Agent字符串)
4.所有防火干墙已经关闭
代码:
private const string database = @"\Program Files\TestApplication\TestDB.sdf";
private const string localDataSource = @"Data Source=" + database;
private void SynchronizeDatabase()
{
SqlCeReplication replication = new SqlCeReplication();
try
{
replication.InternetUrl = @"http://192.168.107.128/testdb/sscesa20.dll";
replication.Publisher = @"192.168.107.128";
replication.Publication = "TestDB";
replication.PublisherDatabase = "TestDB";
replication.PublisherSecurityMode = SecurityType.DBAuthentication;
replication.PublisherLogin = "sa";
replication.PublisherPassword = "sa";
replication.SubscriberConnectionString = localDataSource;
replication.Subscriber = "Pocket_PC";
replication.Synchronize();
MessageBox.Show("同步成功.");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
replication.Dispose();
}
}
当调用SynchronizeDatabase函数进行数据库同步的时候出现内部错误:header information is either corrupted or missing
请问各位这错误该如何解决,被折磨了2天2夜还是没有解决,痛苦中。。。
另外在网上搜到的解决方案说把SQL CE2.0升级到2005版也不行
升级到2005版,把replication.InternetUrl改成@"http://192.168.107.128/testdb/sqlcesa30.dll"
就报initializing sql server reconciler has failed错误。
------解决方案--------------------
安装过sql server 2000和sql server ce2.0,接下来只是给这两个安装补丁,我安装的补丁是:Microsoft_sql2ksp4chs1.exe和sqlce20sql2ksp4.exe(也就是sql server ce server tools),确保两个补丁是一样的版本,这里两个都是sp4的。
(1)安装Microsoft_sql2ksp4chs1
要先装这个Microsoft_sql2ksp4chs1,他是sql server2000的很容易安装,按照步骤就好了。
(2)安装sqlce20sql2ksp4.exe
注意:在安装前,确保IIS服务已经启动
i. 按照提示安装
ii. 进入SQL Server CE Virtual Directory Creation Wizard界面
iii. 给virtual directory 输入名称 “sscepubs”(这个你可以自己命名)
iv. 选择“anonymous access”
v. 下一步,不进行任何选择
共享C:\Program Files\Microsoft SQL Server CE 2.0\Server目录(完全共享),然后\\计算名\server
vi. 安装完成
(3)修改SQL Server 2000
进入SQL Server的企业管理器,在正在运行的Sever中选择安全性,新建登陆,新增加用户IUSER_计算机名(Internet来宾帐号), 并在数据库
访问中选中要访问的数据库,增加角色”db_owner”,点击确定,完成权限设置
(4)测试是否安装成功
在IE中输入http://服务器的IP地址/sscepubs/sscesa20.dll, 如果连接成功且出现“SQL Server CE Agent”
这样子就好了,可以利用SqlCeRemoteDataAccess这个来实现同步了
------解决方案--------------------
你使用Visual Studio 2005。
默认为SqlServerCe3.0 组件。
应该使用匹配sscesa20.dll:
\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v2.0\System.Data.SqlServerCe.dll
------解决方案--------------------
帮顶,关注中
环境:
Windows XP Professional SP2
Visual Studio 2005 SP1
SQL Server 2000 SP4
SQL Server CE 2.0 for SQL2000 SP4
1.数据库(TestDB)已经发布
2.快照文件夹已经共享,并具有读写权限
3.虚拟目录已经建立,并且在模拟器的浏览器访问正常(出现SQL Server CE Server Agent字符串)
4.所有防火干墙已经关闭
代码:
private const string database = @"\Program Files\TestApplication\TestDB.sdf";
private const string localDataSource = @"Data Source=" + database;
private void SynchronizeDatabase()
{
SqlCeReplication replication = new SqlCeReplication();
try
{
replication.InternetUrl = @"http://192.168.107.128/testdb/sscesa20.dll";
replication.Publisher = @"192.168.107.128";
replication.Publication = "TestDB";
replication.PublisherDatabase = "TestDB";
replication.PublisherSecurityMode = SecurityType.DBAuthentication;
replication.PublisherLogin = "sa";
replication.PublisherPassword = "sa";
replication.SubscriberConnectionString = localDataSource;
replication.Subscriber = "Pocket_PC";
replication.Synchronize();
MessageBox.Show("同步成功.");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
replication.Dispose();
}
}
当调用SynchronizeDatabase函数进行数据库同步的时候出现内部错误:header information is either corrupted or missing
请问各位这错误该如何解决,被折磨了2天2夜还是没有解决,痛苦中。。。
另外在网上搜到的解决方案说把SQL CE2.0升级到2005版也不行
升级到2005版,把replication.InternetUrl改成@"http://192.168.107.128/testdb/sqlcesa30.dll"
就报initializing sql server reconciler has failed错误。
------解决方案--------------------
安装过sql server 2000和sql server ce2.0,接下来只是给这两个安装补丁,我安装的补丁是:Microsoft_sql2ksp4chs1.exe和sqlce20sql2ksp4.exe(也就是sql server ce server tools),确保两个补丁是一样的版本,这里两个都是sp4的。
(1)安装Microsoft_sql2ksp4chs1
要先装这个Microsoft_sql2ksp4chs1,他是sql server2000的很容易安装,按照步骤就好了。
(2)安装sqlce20sql2ksp4.exe
注意:在安装前,确保IIS服务已经启动
i. 按照提示安装
ii. 进入SQL Server CE Virtual Directory Creation Wizard界面
iii. 给virtual directory 输入名称 “sscepubs”(这个你可以自己命名)
iv. 选择“anonymous access”
v. 下一步,不进行任何选择
共享C:\Program Files\Microsoft SQL Server CE 2.0\Server目录(完全共享),然后\\计算名\server
vi. 安装完成
(3)修改SQL Server 2000
进入SQL Server的企业管理器,在正在运行的Sever中选择安全性,新建登陆,新增加用户IUSER_计算机名(Internet来宾帐号), 并在数据库
访问中选中要访问的数据库,增加角色”db_owner”,点击确定,完成权限设置
(4)测试是否安装成功
在IE中输入http://服务器的IP地址/sscepubs/sscesa20.dll, 如果连接成功且出现“SQL Server CE Agent”
这样子就好了,可以利用SqlCeRemoteDataAccess这个来实现同步了
------解决方案--------------------
你使用Visual Studio 2005。
默认为SqlServerCe3.0 组件。
应该使用匹配sscesa20.dll:
\Microsoft Visual Studio 8\SmartDevices\SDK\SQL Server\Mobile\v2.0\System.Data.SqlServerCe.dll
------解决方案--------------------
帮顶,关注中