乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      WCF客戶端動(dòng)態(tài)設(shè)置WCF服務(wù)器主機(jī)的地址的方法參考,可以連接多個(gè)相同WCF主機(jī)的方法

       伊本經(jīng)閣 2012-04-13

       最近做一個(gè)項(xiàng)目,需要在客戶端靈活配置連接到哪個(gè)服務(wù)器的功能,例如客戶端是一個(gè),現(xiàn)在想連接A服務(wù)器就連A服務(wù)器,想連接B服務(wù)器就連接B服務(wù)器,當(dāng)然不需要手動(dòng)修改配置文件,直接通過程序來實(shí)現(xiàn)WCF目標(biāo)主機(jī)的配置功能。

         參考核心代碼如下:

      //--------------------------------------------------------------------
      // All Rights Reserved , Copyright (C) 2011 , Hairihan TECH, Ltd. 
      //--------------------------------------------------------------------

      using System.ServiceModel;

      namespace DotNet.WCFClient
      {
          
      using DotNet.IService;
          
      using DotNet.Utilities;

          
      /// <summary>
          
      /// ServiceFactory
          
      /// 本地服務(wù)的具體實(shí)現(xiàn)接口
          
      /// 
          
      /// 修改紀(jì)錄
          
      /// 
          
      ///        2011.07.03 版本:2.0 JiRiGaLa 可以動(dòng)態(tài)指定服務(wù)器地址的調(diào)用方法。
          
      ///        2009.09.20 版本:1.0 JiRiGaLa 創(chuàng)建。
          
      ///        
          
      /// 版本:2.0
          
      ///
          
      /// <author>
          
      ///        <name>JiRiGaLa</name>
          
      ///        <date>2011.07.03</date>
          
      /// </author> 
          
      /// </summary>
          public class ServiceFactory : IServiceFactory
          {
              
      private string host = string.Empty;
              
      /// <summary>
              
      /// 主機(jī)地址
              
      /// Host = "192.168.0.122";
              
      /// </summary>
              public string Host
              {
                  
      get
                  {
                      
      return host;
                  }
                  
      set
                  {
                      host 
      = value;
                  }
              }

              
      private int port = 0;
              
      /// <summary>
              
      /// 端口號(hào)
              
      /// </summary>
              public int Port
              {
                  
      get
                  {
                      
      return port;
                  }
                  
      set
                  {
                      port 
      = value;
                  }
              }

              
      public ServiceFactory()
              {
              }

              
      /// <summary>
              
      /// 初始化服務(wù)
              
      /// </summary>
              public void InitService()
              {
              }

              
      /// <summary>
              
      /// 動(dòng)態(tài)設(shè)定WCF主機(jī)地址端口的方法
              
      /// </summary>
              
      /// <param name="address">主機(jī)地址</param>
              
      /// <returns>主機(jī)地址</returns>
              public virtual EndpointAddress GetHotsUrl(EndpointAddress address)
              {
                  
      // 若當(dāng)前配置都是空的,就不用生成新的URL了。
                  if (string.IsNullOrEmpty(Host) && (Port == 0))
                  {
                      
      return address;
                  }
                  
      // 判斷當(dāng)前配置的情況
                  string endpointAddress = string.Empty;
                  
      if (string.IsNullOrEmpty(Host))
                  {
                      Host 
      = address.Uri.Host;
                  }
                  
      if (Port == 0)
                  {
                      Port 
      = address.Uri.Port;
                  }
                  endpointAddress 
      = address.Uri.Scheme + "://" + Host + ":" + Port.ToString() + address.Uri.LocalPath;
                  address 
      = new EndpointAddress(endpointAddress);
                  
      return address;
              }

              
      public virtual ISequenceService CreateSequenceService()
              {
                  ChannelFactory
      <ISequenceService> channelFactory = new ChannelFactory<ISequenceService>("DotNet.Service.SequenceService");
                  channelFactory.Endpoint.Address 
      = GetHotsUrl(channelFactory.Endpoint.Address);
                  
      // 加強(qiáng)安全驗(yàn)證防止未授權(quán)匿名調(diào)用
                  channelFactory.Credentials.UserName.UserName = BaseSystemInfo.ServiceUserName;
                  channelFactory.Credentials.UserName.Password 
      = BaseSystemInfo.ServicePassword;
                  ISequenceService proxy 
      = channelFactory.CreateChannel();
                  
      return proxy;
              }

             }
          }
      }

         配套的配置文件參考如下:

      <?xml version="1.0"?>
      <configuration>
        
      <system.serviceModel>
          
      <client>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/ExceptionService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IExceptionService" name="DotNet.Service.ExceptionService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/FileService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IFileService" name="DotNet.Service.FileService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/FolderService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IFolderService" name="DotNet.Service.FolderService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/ItemDetailsService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IItemDetailsService" name="DotNet.Service.ItemDetailsService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/ItemsService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IItemsService" name="DotNet.Service.ItemsService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/LogOnService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.ILogOnService" name="DotNet.Service.LogOnService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/LogService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.ILogService" name="DotNet.Service.LogService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/MessageService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IMessageService" name="DotNet.Service.MessageService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/ModuleService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IModuleService" name="DotNet.Service.ModuleService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/OrganizeService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IOrganizeService" name="DotNet.Service.OrganizeService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/ParameterService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IParameterService" name="DotNet.Service.ParameterService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/PermissionItemService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IPermissionItemService" name="DotNet.Service.PermissionItemService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/PermissionService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IPermissionService" name="DotNet.Service.PermissionService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/RoleService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IRoleService" name="DotNet.Service.RoleService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/SequenceService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.ISequenceService" name="DotNet.Service.SequenceService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/StaffService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IStaffService" name="DotNet.Service.StaffService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/UserService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IUserService" name="DotNet.Service.UserService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/BusinessDbHelperService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IDbHelperService" name="DotNet.Service.BusinessDbHelperService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/UserCenterDbHelperService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IDbHelperService" name="DotNet.Service.UserCenterDbHelperService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/WorkFlowActivityAdminService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IWorkFlowActivityAdminService" name="DotNet.Service.WorkFlowActivityAdminService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/WorkFlowCurrentService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IWorkFlowCurrentService" name="DotNet.Service.WorkFlowCurrentService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/WorkFlowProcessAdminService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.IWorkFlowProcessAdminService" name="DotNet.Service.WorkFlowProcessAdminService"></endpoint>
            
      <endpoint address="net.tcp://jirigala-PC:8888/DotNet.Service/TableColumnsService/" binding="netTcpBinding" bindingConfiguration="netTcpBindingSmiple" contract="DotNet.IService.ITableColumnsService" name="DotNet.Service.TableColumnsService"></endpoint>
          
      </client>

          
      <bindings>
            
      <netTcpBinding>
              
      <binding name="netTcpBindingSmiple" maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647" closeTimeout="00:00:05" openTimeout="00:00:02" receiveTimeout="10:10:10" sendTimeout="00:00:30">
                
      <security mode="Message" >
                  
      <message clientCredentialType="UserName"    />
                
      </security >
              
      </binding>
            
      </netTcpBinding>
          
      </bindings>

        
      </system.serviceModel>
      </configuration>

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多