在公司的一个项目里面,使用WCF做通讯,里面需要取得使用WCF做客户端的IP,在服务器上做进一步的处理,但是让人很失望的是WCF 3.0 里面并不能支持这个功能。
        还好,微软在3.5的新版WCF中提供了这个方法。
        
        不说废话,直接看如何实现。
        简单定义一个服务:
         
WCF 取得客户端IPusing System;
WCF 取得客户端IP
using System.Collections.Generic;
WCF 取得客户端IP
using System.Linq;
WCF 取得客户端IP
using System.Runtime.Serialization;
WCF 取得客户端IP
using System.ServiceModel;
WCF 取得客户端IP
using System.Text;
WCF 取得客户端IP
WCF 取得客户端IP
namespace ClientInfoSample

在建立通道之后按照可以取得:
WCF 取得客户端IPusing System;
WCF 取得客户端IP
using System.Collections.Generic;
WCF 取得客户端IP
using System.Linq;
WCF 取得客户端IP
using System.Runtime.Serialization;
WCF 取得客户端IP
using System.ServiceModel;
WCF 取得客户端IP
using System.Text;
WCF 取得客户端IP
using System.ServiceModel.Channels; 
WCF 取得客户端IP
WCF 取得客户端IP
namespace ClientInfoSample

config:
WCF 取得客户端IP<?xml version="1.0" encoding="utf-8" ?>
WCF 取得客户端IP
WCF 取得客户端IP
<configuration>
WCF 取得客户端IP
WCF 取得客户端IP  
<system.web>
WCF 取得客户端IP
WCF 取得客户端IP    
<compilation debug="true" />
WCF 取得客户端IP
WCF 取得客户端IP  
</system.web>
WCF 取得客户端IP
WCF 取得客户端IP  
<system.serviceModel>
WCF 取得客户端IP
WCF 取得客户端IP    
<services>
WCF 取得客户端IP
WCF 取得客户端IP      
<service name="ClientInfoSample.MyService" behaviorConfiguration="ClientInfoSample.MyServiceBehavior">
WCF 取得客户端IP
WCF 取得客户端IP        
<host>
WCF 取得客户端IP
WCF 取得客户端IP          
<baseAddresses>
WCF 取得客户端IP
WCF 取得客户端IP            
<add baseAddress = "http://localhost:8731/Design_Time_Addresses/ClientInfoSample/MyService/" />
WCF 取得客户端IP
WCF 取得客户端IP          
</baseAddresses>
WCF 取得客户端IP
WCF 取得客户端IP        
</host>
WCF 取得客户端IP
WCF 取得客户端IP        
<endpoint address ="" binding="wsHttpBinding" contract="ClientInfoSample.IService">
WCF 取得客户端IP
WCF 取得客户端IP          
<identity>
WCF 取得客户端IP
WCF 取得客户端IP            
<dns value="localhost"/>
WCF 取得客户端IP
WCF 取得客户端IP          
</identity>
WCF 取得客户端IP
WCF 取得客户端IP        
</endpoint>
WCF 取得客户端IP
WCF 取得客户端IP        
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
WCF 取得客户端IP
WCF 取得客户端IP      
</service>
WCF 取得客户端IP
WCF 取得客户端IP    
</services>
WCF 取得客户端IP
WCF 取得客户端IP    
<behaviors>
WCF 取得客户端IP
WCF 取得客户端IP      
<serviceBehaviors>
WCF 取得客户端IP
WCF 取得客户端IP        
<behavior name="ClientInfoSample.MyServiceBehavior">
WCF 取得客户端IP
WCF 取得客户端IP          
<serviceMetadata httpGetEnabled="True"/>
WCF 取得客户端IP
WCF 取得客户端IP          
<serviceDebug includeExceptionDetailInFaults="False" />
WCF 取得客户端IP
WCF 取得客户端IP        
</behavior>
WCF 取得客户端IP
WCF 取得客户端IP      
</serviceBehaviors>
WCF 取得客户端IP
WCF 取得客户端IP    
</behaviors>
WCF 取得客户端IP
WCF 取得客户端IP  
</system.serviceModel>
WCF 取得客户端IP
WCF 取得客户端IP
</configuration>
WCF 取得客户端IP
WCF 取得客户端IP

例子内容缘自:
http://nayyeri.net/blog/detect-client-ip-in-wcf-3-5/
        

相关文章:

  • 2021-06-28
  • 2021-09-29
  • 2022-12-23
  • 2021-09-04
  • 2021-10-02
猜你喜欢
  • 2021-10-25
  • 2021-08-01
  • 2022-12-23
  • 2021-11-06
  • 2021-09-10
  • 2021-08-30
  • 2022-12-23
相关资源
相似解决方案