2 votes

Problème de WebRequest.Create

Mon besoin est de télécharger une page HTTM. Comme et j'utilise WebRequest.Create. Mais la ligne

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

Lance une exception {"Configuration system failed to initialize"}. Je travaille dans une entreprise. Est-ce dû à un proxy ou autre ? Mais cela se produit lors de la création de l'URL elle-même.

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)

Le code est le suivant

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());
}

2voto

remi bourgarel Points 3893

La méthode System.Net.Configuration.WebRequestModulesSectionInternal.GetSection recherche une section appelée "webRequestModules" voici la mienne dans mon machine.config (Windows/Microsft.net/Framework/votre_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>

0voto

Graham Clark Points 9038

D'après le message d'exception et la trace de la pile, il semble que vous accédiez d'une manière ou d'une autre à Configuration. Essayez d'ajouter une référence à System.Configuration si vous n'en avez pas.

0voto

Akash Kava Points 18026

Le problème se situe dans votre configuration .NET, la configuration est placée à plusieurs endroits, il y a d'abord la machine.config, puis il y a la configuration spécifique à l'utilisateur et enfin il y a la configuration spécifique à l'application, maintenant si le contrôleur de domaine de votre entreprise a mal défini votre configuration ou si l'une de vos machines.config ou une telle configuration a des informations erronées, cela peut conduire à ce problème.

Essayez de regarder dans votre app.config si vous voyez que vous avez fait une erreur de frappe.

0voto

ShdNx Points 1840

J'ai eu exactement le même problème, ce qui est bizarre car dans une solution les mêmes lignes fonctionnaient parfaitement, alors que dans l'autre j'ai eu l'erreur ci-dessus. Cela signifie que le problème se situe au niveau du fichier local des paramètres du projet. J'ai résolu le problème en copiant les fichiers par défaut Settings.settings et Settings.Designer.cs dans le dossier Properties du projet non fonctionnel, en réécrivant les fichiers à cet endroit (après les avoir sauvegardés) et en excluant le fichier app.config du projet.

J'espère que cela vous aidera.

0voto

Majid Rafei Points 25

J'ai eu le même problème, deux projets avec le même code mais l'un fonctionnait et l'autre pas. J'ai copié et remplacé l'App.config du projet défectueux par celui qui ne l'était pas, puis j'ai reconstruit le projet.

J'espère que cela vous aidera ...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X