2015-02-09 2 views
0

Я использую PHP для разработки приложения фрахта, но он должен быть приложением WindowsForm. Используя Visual C#, я показываю веб-страницы, используя webBrowser, и файлы находятся на локальном сервере. Xampp должен запустить все службы до запуска моего приложения, чтобы он читал php и т. Д. Это хорошо работает. Проблема есть. Если я не запускаю службы Xampp, браузер покажет ошибку «Навигация на веб-странице был отменен». Причина этого очевидна (сервер не работает). Итак, что бы я хотел сделать на C#, проверьте, работает ли сервер или проверьте, доступно ли http://127.0.0.1/site. Если он не отображает ошибку messgaeBox, и если она доступна, ничего не делайте.C# Check Если Xampp Server/Localhost запущен

Но я не хочу, чтобы сотрудники видели это сообщение, поэтому если службы xampp не выполняются или localhost недоступен, я хочу показать окно сообщения вместо попытки загрузки страницы. Xampp Running with No Internet Connection. Works fine

+0

Поправьте меня, если я ошибаюсь, но у вас есть сообщение, которое говорит не XAMPP в фоновом режиме, как вы обнаружения того, что уже? Nevermind, я думаю, теперь понимаю. –

+0

О, извините, я забыл сказать. Это текст, который я напечатал в краске после скриншота. «Нет XAMPP» и «XAMPP Running» не входит в программу. –

ответ

0

Используйте HttpWebRequest, чтобы попытаться извлечь какую-либо страницу с вашего сайта, и в случае успеха вы также можете проверить StatusCode на HttpWebResponse. Должно быть 200 или аналогично.

1

Возможно, вы хотите создать веб-запрос в .Net и прочитать код ответа, использовать условную логику, чтобы затем выбрать свое действие.

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

Мой код не тестировался, но он должен делать то, что вам нужно.

+0

Так много ошибок. Как я могу использовать класс WebRequest и HttpWebResponse? –

+0

Эй. После смешивания вашего кода с другим я получил его на работу! Благодарю. Я отмечу это как ответ. –

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

+0

Я рад, что у вас это работает! –

Смежные вопросы