Upload em C#

Caros,
necessito de uma ajuda para uma aplicação do tipo Windows Application, que deverá fazer upload de arquivos para um deterninado servidor, via HTTP.
Vejam o codigo abaixo:

 private void BTUpload_Click(object sender, EventArgs e)
        {
            String site = "http://localhost";
            String arquivo = "c:\\teste.txt";
            WebClient cliente = new WebClient();
            NetworkCredential credenciais = new NetworkCredential("usuario", "senha");
            cliente.Credentials = credenciais;
            try
            {
                cliente.UploadFile(site, arquivo);
                MessageBox.Show("Arquivo enviado com sucesso!");
            }
            catch (Exception erro)
            {
                MessageBox.Show("Erro ao tentar enviar o arquivo!" + "Erro: " + erro);
            }
        }

O codigo acima não apresenta nenhum erro, mas também não transfere o arquivo.

Alguem tem ideia de como posso executar tal tarefa?

Pode ser que o site que você listou (http://localhost) não aceite fazer upload. É necessário testar o seu programa com uma URL de um site que sabidamente aceite uploads.

Não precisa colocar a porta ali depois do localhost??

Não é preciso pôr a porta, mas a URL deve ser de algum ASPX ou JSP ou PHP ou coisa que o valha que aceite uploads. Normalmente “http://localhost” é o “index.html” ou “index.aspx” ou “index.jsp” e essa página default não costuma aceitar uploads.

E aproveitando então … como seria para um index.*, q corresponde o localhost, aceitar upload??

teria alguma forma??

Se for em ASP.NET você teria algo como:
http://www.linhadecodigo.com.br/Artigo.aspx?id=182

Blza.

Grato