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
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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
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();
}
}