2
respostas

não é possivel aceder a este site

Após fazer tudo no codigo, no video mostra ele compilando, abrindo o site e o site funcionando, mas quando entro para ver o site aparece "Não é possivel aceder a este site" localhost recusou estabelecer ligação

ERR_CONNECTION_REFUSED

2 respostas

Boa tarde Júlio, Blz?

Como vc está chamando o site na URL do navegador? Execute a aplicação,quando aparecer o console.

Acesse o navegador e digite: http://localhost:5341/View/Home/Index.html para testar o arquivo.

Olá, Júlio!

Baixei o projeto e testei. Primeiro, obtive o mesmo erro que você (ERR_CONNECTION_REFUSED), mas após dar uma mexida no código, o erro mudou para ERR_CONNECTION_RESET.

Após dar uma pesquisada, vi que um outro aluno já enfrentou esse mesmo problema e foi ajudado pelo instrutor do curso. Segue a Thread: https://cursos.alura.com.br/forum/topico-aula-1-o-comando-resposta-outputstream-write-nao-esta-funcionando-em-tempo-de-execucao-53983

Porém, o código era relativo à aula 1.

Fiz uma adaptação seguindo que tinha sido implementado até a aula 3 (projeto inicial da aula 4) na classe WebApplication, testei com as URLs http://localhost:5341/Cambio/MXN http://localhost:5341/Cambio/USD e deu certinho.

Segue o código da classe WebApplication refatorada:

public class WebApplication
{
    private readonly string[] _prefixos;
    private HttpListener httpListener;

    public WebApplication(string[] prefixos)
    {
        if (prefixos == null)
            throw new ArgumentNullException(nameof(prefixos));
        _prefixos = prefixos;
    }

    public void Iniciar()
    {
        httpListener = new HttpListener();

        foreach (var prefixo in _prefixos)
            httpListener.Prefixes.Add(prefixo);

        httpListener.Start();

        // Deste modo, trataremos as requisições de forma assíncrona
        // ou seja, a linha a seguir é não-bloqueante e  o  primeiro 
        // parâmetro é o callback a ser invocado quando  o  contexto
        // for obtido.
        httpListener.BeginGetContext(CallBack_QuandoContextoForObtido, null);

        // Como a linha anterior é assíncrona e não bloqueante, uso
        // esta linha para o processo da aplicação não encerrar.
        Console.ReadLine();
    }

    private void CallBack_QuandoContextoForObtido(IAsyncResult asyncResult)
    {
        var contexto = httpListener.EndGetContext(asyncResult);

        // Antes  de  tratar  a  requisição   atual,    já
        // deixaremos o httpListener aguardando a próxima,
        // chamando BeginGetContext novamente.
        httpListener.BeginGetContext(CallBack_QuandoContextoForObtido, null);

        // Daqui para baixo é exatamente o mesmo  código
        // com exceção da chamada do método Stop(), pois
        // manteremos a nossa instância httpListener  já
        // preparada para a próxima requisição!
        var requisicao = contexto.Request;
        var resposta = contexto.Response;
        var path = requisicao.Url.AbsolutePath;

        if (Utilidades.EhArquivo(path))
        {
            var manipulador = new ManipuladorRequisicaoArquivo();
            manipulador.Manipular(resposta, path);
        }
        else
        {
            var manipulador = new ManipuladorRequisicaoController();
            manipulador.Manipular(resposta, path);
        }   

        // Não daremos Stop, pois o HttpListener continuará
        // pronto para outra requisição!
        // httpListener.Stop();
    }

}