WCF获取客户端IP应用经验分享

开发 开发工具
WCF获取客户端IP的实现方法比较简单,可以根据文章中提到的两个步骤来完成,首先就是来定义一个服务,然后在建立通道之后来进行实现。

WCF开发工具的应用范围比较广泛,可以帮助开发人员轻松的实现各种特定的功能需求。在这里我们可以了解到WCF获取客户端IP的相关操作方法,以此来进一步对这一开发工具有一个深入的认识。#t#

在公司的一个项目里面,使用WCF做通讯,里面需要取得使用WCF做客户端的IP,在服务器上做进一步的处理,但是让人很失望的是WCF 3.0 里面并不能支持这个功能。
还好,微软在3.5的新版WCF中提供了这个方法。

不说废话,直接看如何实现WCF获取客户端IP。简单定义一个服务:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Runtime.Serialization;  
using System.ServiceModel;  
using System.Text;  
namespace ClientInfoSample  
{  
[ServiceContract]  
public interface IService  
{  
[OperationContract]  
string GetData(string value);  
}  

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.

 

在建立通道之后按照可以实现WCF获取客户端IP:

using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Runtime.Serialization;  
using System.ServiceModel;  
using System.Text;  
using System.ServiceModel.Channels;   
namespace ClientInfoSample  
{  
public class MyService : IService  
{  
public string GetData(string value)  
{  
OperationContext context = OperationContext.Current;  
MessageProperties essageProperties = 
context.IncomingMessageProperties;   RemoteEndpointMessageProperty endpointProperty =   messageProperties [RemoteEndpointMessageProperty.Name]   as RemoteEndpointMessageProperty;   return string.Format("Hello {0}! Your IP address is {1} 
and your port is {2}", value, endpointProperty.Address, 
endpointProperty.Port);  
}   }   }   config:   < ?xml version="1.0" encoding="utf-8" ?>  < configuration>  < system.web>  < compilation debug="true" />  < /system.web>  < system.serviceModel>  < services>  < service name="ClientInfoSample.MyService" 
behaviorConfiguration="ClientInfoSample.MyServiceBehavior">  < host>  < baseAddresses>  < add baseAddress = "http://localhost:8731/
Design_Time_Addresses/ClientInfoSample/MyService/"
 />  < /baseAddresses>  < /host>  < endpoint address ="" binding="wsHttpBinding" 
contract="ClientInfoSample.IService">  < identity>  < dns value="localhost"/>  < /identity>  < /endpoint>  < endpoint address="mex" binding="mexHttpBinding" 
contract="IMetadataExchange"/>  < /service>  < /services>  < behaviors>  < serviceBehaviors>  < behavior name="ClientInfoSample.MyServiceBehavior">  < serviceMetadata httpGetEnabled="True"/>  < serviceDebug includeExceptionDetailInFaults="False" />  < /behavior>  < /serviceBehaviors>  < /behaviors>  < /system.serviceModel>  < /configuration> 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.

以上就是对WCF获取客户端IP的相关介绍。

责任编辑:曹凯 来源: 博客园
相关推荐

2009-12-22 18:18:11

WCF客户端编程

2009-12-21 15:53:56

WCF获取客户端IP

2023-11-15 13:50:07

服务端IP

2010-02-24 16:17:09

WCF获取客户端IP

2009-12-08 16:47:06

WCF IP

2009-12-07 18:26:36

WCF客户端

2009-11-05 13:00:25

WCF客户端

2019-10-29 05:34:34

IPJava服务器

2010-02-25 16:20:02

WCF客户端

2009-12-22 10:29:59

WCF客户端处理

2010-12-21 11:03:15

获取客户端证书

2018-12-19 10:31:32

客户端IP服务器

2010-02-24 16:39:27

WCF客户端处理

2010-02-23 09:58:21

WCF客户端验证

2009-11-09 15:49:01

WCF异步调用

2009-11-05 13:08:44

WCF客户端配置

2011-09-09 09:44:23

WCF

2009-12-22 19:26:51

WCF绑定

2009-12-22 16:03:03

WCF异常

2009-12-21 10:19:05

Silverlight
点赞
收藏

51CTO技术栈公众号