如何设置在WCF服务中使用的网络接口?

时间:2017-03-27 05:20:58

标签: c# wpf wcf

我对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地址。

感谢。

0 个答案:

没有答案