我使用PHP开发运费应用程序,但它必须是WindowsForm应用程序。使用visual C#,我使用webBrowser显示网页,文件在本地服务器上。 Xampp需要在我的应用程序运行之前启动所有服务,因此它会读取php等。这很好用。 问题是。如果我没有运行Xampp服务,浏览器将显示错误"导航到网页已被取消"。原因很明显(没有服务器运行)。 所以我想在C#中做的是检查服务器是否正在运行或检查http://127.0.0.1/site是否可用。如果不是那么显示错误messgaeBox,如果它可用,则不做任何其他事情。
但是我不希望员工看到这条消息,所以如果xampp服务没有运行或者localhost不可访问我想显示一个消息框而不是试图加载页面。
答案 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 ...”是一个事件(加载)。
以下是结果:
答案 2 :(得分:0)
使用HttpWebRequest尝试从您的网站上提取一些页面,如果成功,您还可以检查HttpWebResponse上的StatusCode。应该是200或类似。