Веб-клиент System.Net в C # не будет подключаться к серверу - PullRequest
2 голосов
/ 11 января 2009

Что мне нужно сделать, чтобы System.Net работал с Microsoft Visual C # 2008 Express Edition? Кажется, я не могу заставить работать какие-либо элементы управления или классы веб-типов ... приведенный ниже пример WebClient всегда вызывает исключение " Невозможно подключиться к удаленному серверу " .. и, следовательно, я не могу получить элемент управления WebBrowser для загрузки страницы либо.

Вот код (отредактированный):

using System;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Net;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            using (WebClient client = new WebClient()) {
                string s = client.DownloadString("http://www.google.com");
                this.textBox1.Text = s;
            }
        }
    }
}

Это простая форма, содержащая только элемент управления текстовым полем (с многострочным значением true). Исключение выдается в строке DownloadString(...). Я также пытался использовать WebRequest .. то же исключение!

EDIT:

Я подключен к маршрутизатору Linksys WRT54G, который подключается напрямую к моему кабельному модему. Я не за прокси-сервером, хотя я запустил proxycfg -u и получил:

Updated proxy settings
Current WinHTTP proxy settings under:
  HKEY_LOCAL_MACHINE\
    SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\
      WinHttpSettings :

 Direct access (no proxy server).

Я использую Windows XP и не использую какой-либо брандмауэр. Только AVG на данный момент. Я почти уверен, что мне не нужно пересылать какие-либо порты или что-то еще, но я попытался перенаправить порт 80 на мою рабочую станцию ​​на моем маршрутизаторе. Не помогло.

Ответы [ 2 ]

5 голосов
/ 11 января 2009

( обновление - я имел в виду proxycfg, а не httpcfg; proxycfg -u будет выполнять импорт)

Во-первых, здесь нет ничего особенного в "экспрессе". Во-вторых, contoso - это фиктивный URL.

На какой ОС вы работаете? И ты ходишь через прокси-сервер? Если это так, вам может потребоваться настроить стек http операционной системы - proxycfg выполнит эту работу в XP и может быть использован для импорта пользовательских настроек IE.

Образец в порядке, хотя он неправильно обрабатывает несколько IDisposable объектов - следующее намного проще:

        using (WebClient client = new WebClient()) {
            string s = client.DownloadString("http://www.google.com");
            // do something with s
        }
0 голосов
/ 16 января 2009

Есть ли на вашем компьютере какое-либо программное обеспечение брандмауэра, которое может повлиять на него? Вы пробовали на каких-либо сайтах, кроме Google?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...