zoukankan      html  css  js  c++  java
  • 【转】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>

  • 相关阅读:
    5.Docker服务进程关系
    朴素贝叶斯知识点概括
    k近邻法(KNN)知识点概括
    机器学习的应用实例
    HNU 10111 0-1矩阵
    CSU 1421 Necklace
    Poj 3469 Dual Core CPU
    Poj 2135 Farm Tour
    Poj 3180 The Cow Prom
    HDU 1004 Let the Balloon Rise
  • 原文地址:https://www.cnblogs.com/chenlhuaf/p/1212833.html
Copyright © 2011-2022 走看看