如何获取Web服务的状态

如何使用C#获取Web服务的状态? 是否成功完成,失败或等待这样。

首先我发现了这个问题Web服务数据库/网站状态

你应该尝试这个代码;

System.ServiceProcess.ServiceController sc = new System.ServiceProcess.ServiceController("myService"); return sc.Status 

你应该检查这段代码;

 public static string PingHost(string args) { HttpWebResponse res = null; try { // Create a request to the passed URI. HttpWebRequest req = (HttpWebRequest)WebRequest.Create(args); req.Credentials = CredentialCache.DefaultNetworkCredentials; // Get the response object. res = (HttpWebResponse)req.GetResponse(); return "Service Up"; } catch (Exception e) { MessageBox.Show("Source : " + e.Source, "Exception Source", MessageBoxButtons.OK); MessageBox.Show("Message : " + e.Message, "Exception Message", MessageBoxButtons.OK); return "Host Unavailable"; } } 

而你也应该看;

在Web服务中使用会话状态

 private void button1_Click(object sender, EventArgs e) { var url = "servicsURL"; try { var myRequest = (HttpWebRequest)WebRequest.Create(url); NetworkCredential networkCredential = new NetworkCredential("UserName", "password","domain"); // Associate the 'NetworkCredential' object with the 'WebRequest' object. myRequest.Credentials = networkCredential; var response = (HttpWebResponse)myRequest.GetResponse(); if (response.StatusCode == HttpStatusCode.OK) { // it's at least in some way responsive // but may be internally broken // as you could find out if you called one of the methods for real MessageBox.Show(string.Format("{0} Available", url)); } else { // well, at least it returned... MessageBox.Show(string.Format("{0} Returned, but with status: {1}", url, response.StatusDescription)); } } catch (Exception ex) { // not available at all, for some reason MessageBox.Show(string.Format("{0} unavailable: {1}", url, ex.Message)); } } 

如果您在同步模式下调用Web服务,则获取状态没有问题。

如果您在异步模式下调用Web服务,则应设置回调函数并在返回到该回调函数的结果中跟踪Web服务状态。