使用代码去描述WCF配置文件


在应用程序部署的时候,WCF客户端因为服务器地址的变化,需要修改程序配置文件的地址URL,手动修改很不方便,还会造成错误,所以尽量把描述WCF配置文件的配置使用代码方式进行描述,通过在软件中输入服务器IP地址的方式,动态修改访问的URL,这样比较方便,也不会出错,导致程序运行异常。

下面我将一个WCF部署文件采用代码方式描述:


WCF客户端的配置文件:



    
        
            
                
                    
                    
                    
                        
                        
                    
                
            
        
        
            
                
                    
                
            
        
    


编程中使用代码描述上述文件:在这里客户端引用的WCF服务命名空间定义为DataCenterFatoryC,客户端访问对象为  DataCenterFatoryC.MainServiceClient MainServiceClient1;


using System.ServiceModel;

 WSHttpBinding Bindins;

   DataCenterFatoryC.MainServiceClient MainServiceClient1;


  private void MainForm_Load(object sender, EventArgs e)
        {
            Bindins = new WSHttpBinding();//设置绑定
            Bindins.CloseTimeout = TimeSpan.Parse("00:01:00");
            Bindins.OpenTimeout = TimeSpan.Parse("00:01:00");
            Bindins.ReceiveTimeout = TimeSpan.Parse("00:10:00");
            Bindins.SendTimeout = TimeSpan.Parse("00:01:00");
            Bindins.BypassProxyOnLocal = false;
            Bindins.TransactionFlow = false;
            Bindins.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
            Bindins.MaxBufferPoolSize = 524288;
            Bindins.MaxReceivedMessageSize = 65535;
            Bindins.MessageEncoding = WSMessageEncoding.Text;
            Bindins.TextEncoding = Encoding.UTF8;
            Bindins.UseDefaultWebProxy = true;
            Bindins.ReaderQuotas.MaxDepth = 32;
            Bindins.ReaderQuotas.MaxStringContentLength = 8192;
            Bindins.ReaderQuotas.MaxArrayLength = 16383;
            Bindins.ReaderQuotas.MaxBytesPerRead = 4096;
            Bindins.ReaderQuotas.MaxNameTableCharCount = 16384;
            Bindins.ReliableSession.Ordered = true;
            Bindins.ReliableSession.InactivityTimeout = TimeSpan.Parse("00:10:00");
            Bindins.ReliableSession.Enabled = false;
            Bindins.Security.Mode = SecurityMode.Message;
            Bindins.Security.Transport.ClientCredentialType = HttpClientCredentialType.Windows;
            Bindins.Security.Transport.ProxyCredentialType = HttpProxyCredentialType.None;
            Bindins.Security.Message.ClientCredentialType = MessageCredentialType.Windows;
            Bindins.Security.Message.NegotiateServiceCredential = true;
            Bindins.Security.Message.AlgorithmSuite = System.ServiceModel.Security.SecurityAlgorithmSuite.Default;
            Bindins.Security.Message.EstablishSecurityContext = true;




            string address = "http://localhost:8888/DataCenter.Factory/MainService/";//服务终结点的URL
            MainServiceClient1 = new DataCenterFatoryC.MainServiceClient(Bindins, new EndpointAddress(address));
            MainServiceClient1.Open();
        }



通过对Bindins的参数设置,能有效的描述访问过程的一些问题,比如上传下载大文件,大数据表都依赖重要参数的设置,否则运行中会有异常错误发生,这是我们应该注意的。



你可能感兴趣的:(C#开发技术)