.net实现ping的实例代码

时间:2022-06-01 16:35:57

代码如下:


class ServicePinger 
    { 
        private static readonly ILog log = LogManager.GetLogger(typeof(ServicePinger)); 
        public ServicePinger(string siteName, string siteUrl, string serviceUrl) 
        { 
            if (siteName == null) 
                throw new ArgumentException("siteName can't be null"); 

            if (siteUrl == null) 
                throw new ArgumentException("siteUrl can't be null"); 

            if (serviceUrl == null) 
                throw new ArgumentException("serviceUrl can't be null"); 

            if (siteName.Length == 0) 
                throw new ArgumentException("siteName can't be empty"); 

            if (siteUrl.Length == 0) 
                throw new ArgumentException("siteUrl can't be empty"); 

            if (serviceUrl.Length == 0) 
                throw new ArgumentException("serviceUrl can't be empty"); 

            pingingSiteName = siteName; 
            pingingSiteUrl = siteUrl; 
            serviceUrlToPing = serviceUrl; 

  

        } 

        private string pingingSiteName = string.Empty; 
        private string pingingSiteUrl = string.Empty; 
        private string serviceUrlToPing = string.Empty; 
        private int timeoutInMilliseconds = 3000; 

  
        /// <summary> 
        /// Does the actual pinging of the service 
        /// </summary> 
        public void Ping() 
        { 
            try
            { 
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(serviceUrlToPing); 
                request.Method = "POST"; 
                request.ContentType = "text/xml"; 
                request.Timeout = timeoutInMilliseconds; 
                request.Credentials = CredentialCache.DefaultNetworkCredentials; 

  
                Stream stream = (Stream)request.GetRequestStream(); 
                using (XmlTextWriter writer = new XmlTextWriter(stream, Encoding.ASCII)) 
                { 
                    writer.WriteStartDocument(); 
                    writer.WriteStartElement("methodCall"); 
                    writer.WriteElementString("methodName", "weblogUpdates.ping"); 
                    writer.WriteStartElement("params"); 
                    writer.WriteStartElement("param"); 
                    writer.WriteElementString("value", pingingSiteName); 
                    writer.WriteEndElement(); 
                    writer.WriteStartElement("param"); 
                    writer.WriteElementString("value", pingingSiteUrl); 
                    writer.WriteEndElement(); 
                    writer.WriteEndElement(); 
                    writer.WriteEndElement(); 
                } 

  
                request.GetResponse(); 
            } 
            catch (InvalidOperationException ex) 
            { 
                log.Error(ex); 
            } 
            catch (NotSupportedException ex) 
            { 
                log.Error(ex); 
            }

 

        } 

    }