我对WCF知之甚少。我有一个使用WCF服务的WPF平板电脑应用程序与其他平板电脑上的另一个WPF应用程序实例进行通信。
WPF应用程序通过WCF服务从其他平板电脑的数据库发出拉取请求。平板电脑上的此WCF服务从数据库中提取数据,并通过TCP将其发送回请求的应用程序。反之亦然。因此实现了同步。它发生在WiFi接口上。
private const string WCFSERVICE_URL = "net.tcp://{0}:{1}/SynchronizeService"
我们配置客户端的一些代码:
private DrillSynchronizeClient CreateConfigureClient(DrillNetInfo Drill)
{
DrillSynchronizeClient synchClient = new DrillSynchronizeClient();
string endpointUrl = String.Format(WCFSERVICE_URL, Drill.Ip, wcfServiceNetworkPort);
EndpointAddress serviceAddress = new EndpointAddress(endpointUrl);
NetTcpBinding netTcpBinding = new NetTcpBinding();
netTcpBinding.Security.Mode = SecurityMode.None;
netTcpBinding.Security.Transport.ClientCredentialType = TcpClientCredentialType.None;
netTcpBinding.OpenTimeout = new TimeSpan(0, 5, 0);
netTcpBinding.CloseTimeout = new TimeSpan(0, 5, 0);
netTcpBinding.SendTimeout = new TimeSpan(0, 5, 0);
netTcpBinding.ReceiveTimeout = new TimeSpan(0, 5, 0);
netTcpBinding.MaxBufferPoolSize = int.MaxValue;
netTcpBinding.MaxBufferSize = int.MaxValue;
netTcpBinding.MaxReceivedMessageSize = int.MaxValue;
synchClient.Endpoint.Address = serviceAddress;
synchClient.Endpoint.Binding = netTcpBinding;
return synchClient;
}
当这些平板电脑上没有可用的互联网连接时,此功能正常。
当平板电脑通过互联网USB加密狗连接到互联网时,此同步将停止工作。 WCF是否尝试使用Internet适配器(加密狗)来解析WCF服务IP地址端点?不确定,如何绑定WCF服务以仅使用WLAN接口进行通信。
另请告诉我在何处指定/绑定在调用WCF请求时使用的源接口IP地址。
感谢。