WebRequest. Создать проблему - PullRequest
2 голосов
/ 26 марта 2010

Мое требование - загрузить HTTM-страницу. Как и я использую WebRequest.Create. Но линия

HttpWebRequest request = (HttpWebRequest) WebRequest.Create("http://www.mayosoftware.com");

Выдает исключительную ситуацию {"Не удалось инициализировать систему конфигурации"}. Я работаю в компании. Это связано с прокси или что-нибудь? Но это происходит при создании самого URL.

Exception trace is:

   at System.Configuration.ConfigurationManager.PrepareConfigSystem()
   at System.Configuration.ConfigurationManager.GetSection(String sectionName)
   at System.Configuration.PrivilegedConfigurationManager.GetSection(String sectionName)
   at System.Net.Configuration.WebRequestModulesSectionInternal.GetSection()
   at System.Net.WebRequest.get_PrefixList()
   at System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase)

Код похож на

void GetHTTPReq()
{ 

Looking forward on it. The complete code is as follows but problem is in the starting itself
:


\\            // used to build entire input

        StringBuilder sb = new StringBuilder();

        // used on each read operation
        byte[] buf = new byte[8192];

        // prepare the web page we will be asking for
        HttpWebRequest request = (HttpWebRequest) WebRequest.Create("http://www.mayosoftware.com");

        // execute the request
        HttpWebResponse response = (HttpWebResponse)
            request.GetResponse();

        // we will read data via the response stream
        Stream resStream = response.GetResponseStream();

        string tempString = null;
        int count = 0;

        do
        {
            // fill the buffer with data
            count = resStream.Read(buf, 0, buf.Length);

            // make sure we read some data
            if (count != 0)
            {
                // translate from bytes to ASCII text
                tempString = Encoding.ASCII.GetString(buf, 0, count);

                // continue building the string
                sb.Append(tempString);
            }
        }
        while (count > 0); // any more data to read?

        // print out page source
        Console.WriteLine(sb.ToString());
}

Ответы [ 4 ]

2 голосов
/ 26 марта 2010

Метод System.Net.Configuration.WebRequestModulesSectionInternal.GetSection ищет раздел с именем "webRequestModules", здесь мой в моем machine.config (WINDOWS / Microsft.net / Framework / your_version / config / machine.config)

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<configSections>
...
  <sectionGroup name="system.net" type="System.Net.Configuration.NetSectionGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
    ...
    <section name="webRequestModules" type="System.Net.Configuration.WebRequestModulesSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
    ...
  </sectiongroup>
...
</configsection>
...
</configuration>
0 голосов
/ 27 апреля 2010

У меня была та же самая проблема, которая была странной, потому что в одном решении те же самые линии работали отлично, в то время как в другом я получил ошибку выше. Это означает, что проблема в локальном файле настроек проекта. Я решил это, скопировав файлы Settings.settings и Settings.Designer.cs по умолчанию в папку «Свойства» нерабочего проекта, переписав там файлы (после их резервного копирования) и исключив файл app.config из проекта.

Надеюсь, это поможет.

0 голосов
/ 26 марта 2010

Проблема в вашем .NET конфиге, конфиг находится во многих местах, сначала есть machine.config, затем конфиг, специфичный для пользователя, а затем конфиг, специфичный для приложения, теперь, если контроллер домена вашей компании неверно настроил ваш конфиг или любой ваш machine.config или такой конфиг содержат неверную информацию, которая может привести к этой проблеме.

Попробуйте заглянуть в свой app.config, если видите, что там что-то опечатано.

0 голосов
/ 26 марта 2010

Из сообщения об исключении и трассировки стека похоже, что вы как-то обращаетесь к Конфигурации. Попробуйте добавить ссылку на System.Configuration, если у вас ее нет.

...