C#检查Xampp Server / Localhost是否正在运行

时间:2015-02-09 23:45:46

标签: c# php xampp localhost

我使用PHP开发运费应用程序,但它必须是WindowsForm应用程序。使用visual C#,我使用webBrowser显示网页,文件在本地服务器上。 Xampp需要在我的应用程序运行之前启动所有服务,因此它会读取php等。这很好用。 问题是。如果我没有运行Xampp服务,浏览器将显示错误"导航到网页已被取消"。原因很明显(没有服务器运行)。 所以我想在C#中做的是检查服务器是否正在运行或检查http://127.0.0.1/site是否可用。如果不是那么显示错误messgaeBox,如果它可用,则不做任何其他事情。 Message when Xampp is not running

但是我不希望员工看到这条消息,所以如果xampp服务没有运行或者localhost不可访问我想显示一个消息框而不是试图加载页面。 Xampp Running with No Internet Connection. Works fine

3 个答案:

答案 0 :(得分:1)

您可能希望在.Net中制作Web请求并阅读响应代码,然后使用条件逻辑选择您的操作。

WebRequest request = WebRequest.Create ("http://127.0.0.1/site");
// If required by the server, set the credentials.
request.Credentials = CredentialCache.DefaultCredentials;
// Get the response.
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();
if(response.StatusCode == HttpStatusCode.NotFound) {
   // show messagebox here
}

相关文档WebRequest Class Documentation

我的代码未经测试,但它应该做你需要的。

答案 1 :(得分:1)

在Daniel Lane的帮助下,我得到了它的工作。

using System.IO;
using System.Web;
using System.Net;
WebRequest request = WebRequest.Create("http://127.0.0.1/site");
            try
            {
                using (WebResponse response = request.GetResponse())
                {
                    //Load Webpage
                }
            }
            catch (WebException erf)
            {
                using (WebResponse response = erf.Response)
                {
                    var errorForm = new error();
                    errorForm.Show();
                    this.Close();
                }
            }

来自“WebRequest ...”是一个事件(加载)。

以下是结果: XAMPP Running So Form Opens


XAMPP Not Running So Error Form is shown instead of Form

答案 2 :(得分:0)

使用HttpWebRequest尝试从您的网站上提取一些页面,如果成功,您还可以检查HttpWebResponse上的StatusCode。应该是200或类似。