.NET 2.0 и 3.0 WebRequest не работает

В течение нескольких недель я пытался исправить проблему, которая возникла из ниоткуда. Проблема в том, что всякий раз, когда я пытаюсь создать WebRequest, происходит сбой с исключением NotInitialized. Это не только новый код, но и старые приложения, которые раньше работали хорошо, теперь дают сбой. Я попытался удалить .NET 2.0 SDK (который, как я думал, может быть причиной), но безрезультатно.

Даже WebClient не может ничего скачать, просто выдает неизвестное исключение. Это появляется в .NET 2.0 и 3.0, .NET 4.0 и 4.5 работает нормально.

Кто-нибудь знает, почему это происходит?

РЕДАКТИРОВАТЬ: У него есть два возможных исключения. Одним из них является ConfigurationErrorsException (не удалось инициализировать систему конфигурации), который исчезает, когда я удаляю app.config, который мне все равно не нужен.

Второй — NullReferenceException (ссылка на объект не указывает на экземпляр объекта).

Трассировки стека:

 at System.Net.WebRequest.get_PrefixList()
   at System.Net.WebRequest.Create(Uri requestUri, Boolean useUriBase)
   at System.Net.WebRequest.Create(String requestUriString)
   at EAC.Form1.Request(String url, String postData, Boolean useAlpha, Boolean useBeta) in D:\Projects\someproject\someproject\Form1.cs:line 34

person Eldan    schedule 04.05.2014    source источник
comment
К счастью, в .NET неизвестных исключений не существует (за исключением межоператорных исключений, которые могут быть каким-то образом неизвестны при неправильной обработке). Вставьте сюда точное имя исключения, сообщение и трассировку стека. В противном случае мы не сможем вам помочь.   -  person Matías Fidemraizer    schedule 04.05.2014
comment
Почти все случаи NullReferenceException одинаковы. Некоторые подсказки см. в разделе Что такое NullReferenceException в .NET?.   -  person John Saunders    schedule 13.05.2014
comment
Спасибо, но, как я уже писал, дело не только в новом коде, но и в старых приложениях, которые раньше работали хорошо, теперь происходит сбой. Эта ошибка также появляется не непосредственно в моем коде, а в классе System.Net.WebClient, который я вообще не модифицировал и который работал отлично.   -  person Eldan    schedule 14.05.2014


Ответы (1)


Проверьте регистрацию раздела "webRequestModules" в файле machine.config и добавьте, если он не существует.

<sectionGroup name="system.net" type="System.Net.Configuration.NetSectionGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
        <section name="authenticationModules" type="System.Net.Configuration.AuthenticationModulesSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <section name="connectionManagement" type="System.Net.Configuration.ConnectionManagementSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <section name="defaultProxy" type="System.Net.Configuration.DefaultProxySection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <sectionGroup name="mailSettings" type="System.Net.Configuration.MailSettingsSectionGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="smtp" type="System.Net.Configuration.SmtpSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        </sectionGroup>
        <section name="requestCaching" type="System.Net.Configuration.RequestCachingSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <section name="settings" type="System.Net.Configuration.SettingsSection, 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>
person Sercan    schedule 07.12.2015