Pergunta

Eu preciso escrever um simples WinForms aplicativos que podem ser disparados para testar se um site ainda está vivo e que esse site é capaz de ler a partir de um banco de dados.

Eu estou usando toda a "myHttpWebRequest.GetResponse (HttpWebResponse) ()" coisa em c # para testar se o site está vivo, mas eu estou em um perder para saber como obter uma página de teste no meu site para escrever algo para o "resposta" para indicar que ele foi capaz de testar a sua própria conectividade com o banco de dados.

Aqui está o código de exemplo para o meu lado WinForms (rasgado do MSDN):

private void CheckUrl()
{
  try
  {
    HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.google.com");

    HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
    myHttpWebResponse.Close();

    label1.Text = myHttpWebRequest.Address.AbsoluteUri;
  }
  catch (WebException e)
  {
    label1.Text = "This program is expected to throw WebException on successful run." +
                                    "\n\nException Message :" + e.Message;

    if (e.Status == WebExceptionStatus.ProtocolError)
    {
      label1.Text = String.Format("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode);
      label2.Text =String.Format("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription);
    }
  }
  catch (Exception e)
  {
    label1.Text = e.Message;
  }
}

Eu estava esperando por alguma ajuda no lado do formulário Web de coisas para voltar para o código acima.

Obrigado por qualquer ajuda que você povos pode proporcionar.

  • Richard
Foi útil?

Solução

O que acontece quando o seu site falhar? Ele retorna um código de status 500 ou tempo limite?

Outra maneira de olhar para ele:? Que sempre fazer algo esperado se for bem sucedido

Você pode chamar uma URL em seu aplicativo web que você sabe que quer retornar um código de resposta 200 ou terá algum esperado fina HTML marcação na resposta, se as coisas estão funcionando.

Tenha sua winform chamar este URL e examinar a Response.Status ou o texto no buffer de saída para a sua marcação esperado. Você também deve criar um tempo limite em sua httprequest. Se a página não carrega dentro do tempo limite, você receberá uma exceção web e você saberá o site está falhando.

Além disso, se você tiver o orçamento, existem serviços de monitoramento externos como gomez.com que podem automatizar isso e fornecer relatórios sobre a disponibilidade local.

Outras dicas

Você pode criar um interior serviço de web do projeto chamado I Am Alive e tê-lo retornar um único caractere.

Na sua área WinForms, consomem disse WebService e se ele funciona, o site está vivo.

Na essência da resposta de Papuccino: você pode realmente criar serviços web que são incorporados no C # code-behind de suas páginas WebForms, marcando-as com o atributo [WebMethod]. Aqueles que residem dentro da aplicação web, não apenas o servidor.

tem a sua página de formulário Web abrir uma conexão de banco de dados e realizar algo simples / baixo impacto, por exemplo.

select SystemTableId from dbo.[SystemTable] where SystemTableId = 1

onde SystemTable é uma tabela única linha.

Se a página gera uma exceção, por qualquer motivo, Response.Write a mensagem de exceção, caso contrário Response.Write ( "SUCESSO") ou similar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top