【转】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);
    }

}



在建立通道之后按照可以取得:
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 >

转载于:https://www.cnblogs.com/chenlhuaf/archive/2008/06/03/1212833.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值