快速业务通道

微软同步框架(MSF)入门之五--使用WCF同步远程数据

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-19
Schema(Collection<string> tableNames, SyncSession syncSession) {
return this._serverSyncProvider.GetSchema(tableNames, syncSession);
}
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public virtual SyncServerInfo GetServerInfo(SyncSession syncSession) {
return this._serverSyncProvider.GetServerInfo(syncSession);
}
}
[ServiceContractAttribute()]
public interface IWcfSyncDataSyncContract {
[OperationContract()]
SyncContext ApplyChanges(SyncGroupMetadata groupMetadata, DataSet dataSet,
SyncSession syncSession);
[OperationContract()]
SyncContext GetChanges(SyncGroupMetadata groupMetadata, SyncSession syncSession);
[OperationContract()]
SyncSchema GetSchema(Collection<string> tableNames, SyncSession syncSession);
[OperationContract()]
SyncServerInfo GetServerInfo(SyncSession syncSession);
}

按照该文件上方提供的关于app.config配置结点信息,我们将相应的服务配置信息定义如下,首先是

services 节中:

<service name="WcfSyncService.WcfSyncDataSyncService"
behaviorConfiguration="WcfSyncService.WcfSyncDataSyncServiceBehavior">
<host>
<baseAddresses>
<add baseAddress ="http://localhost:8731/Design_Time_Addresses/WcfSyncService/WcfSyncDataSyncService/"/>
</baseAddresses>
</host>
<endpoint address ="" binding="wsHttpBinding" contract="WcfSyncService.IWcfSyncDataSyncContract">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>

然后是serviceBehaviors 节中:

<behavior name="WcfSyncService.WcfSyncDataSyncServiceBehavior">
<serviceMetadata httpGetEnabled="True" />
<serviceDebug includeExceptionDetailInFaults="False" />
</behavior>

这样配置完成后,我们将当前WCF作为启动项目并编译运行,然后将相应的服务地址链接信息拷贝出来,

然后在DEMO项目中以“添加服务引用”的方式添加进来。

注:本DEMO的链接地址为: 

http://localhost:8731/Design_Time_Addresses/WcfSyncService/WcfSyncDataSyncService/

接下来,我们只要在创建同步代理(SyncAgent)时创建相应的WCF服务(client)类实例,并将其绑

定到代理类的 RemoteProvider 属性上即可,相应代码如下(位于WcfSyncForm.cs文件中):

WcfSyncDataSyncAgentsyncAgent=

new WcfSyncDataSyncAgent(new MSF_WinFormDemo.WcfServiceSync.WcfSyncDataSyncContractClient());

syncAgent.dnt_spacelinks.SyncDirection=Microsoft.Synchronization.Data.SyncDirection.Bidirectional;

syncAgent.Synchronize();

//将本地数据同步到远程数据服务器

大家注意看上面的new MSF_WinFormDemo.WcfServiceSync.WcfSyncDataSyncContractClient()

即是我们在添加Web服务引用时生成的服务代理类。通过调用WcfSyncDataSyncAgent构造重载方法将

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号