Неизвестный раздел конфигурации connectionStrings.

Я работал над проектом в VS2005, в котором использовалось локальное подключение к базе данных Access.

На прошлой неделе я установил .NET framework 3.5 для использования с другим проектом, а также с VS6.

Я вернулся к своему приложению VS2005, и вдруг возникли большие проблемы:

В дизайнере для любого класса, использующего мое соединение OLEDB, показано следующее:

Невозможно привести объект типа «System.Configuration.DefaultSection» к типу «System.Configuration.ConnectionStringsSection». Скрывать

И когда я запустил приложение, я столкнулся со следующим исключением при запуске:

«Нераспознанный раздел конфигурации connectionStrings».

При поиске в Интернете эти проблемы, по-видимому, обычно связаны с вещами, созданными в VS2005 и развернутыми на платформе .net 1.1; но все это работает как приложение Windows Forms локально в VS (не в IIS). Я пытался удалить и переустановить VS2K5 безрезультатно.

Есть предположения? Спасибо, Мэтт

Я знаю, что это действительно старый пост, но недавно у меня была такая же проблема, я исправил ее, поставив:


person Matty U    schedule 23.11.2009    source источник


Ответы (4)


перед моими строками подключения:

 <configSections>
    <section name="appSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false"/>
    <section name="connectionStrings" type="System.Configuration.ConnectionStringsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" requirePermission="false"/>
 <configSections>

поэтому мой app.config выглядит так:

    <connectionStrings>
        <add name="XXX" connectionString="Data Source=.;Initial Catalog=db;User Id=user;Password=pw;" providerName="System.Data.SqlClient"/>
      </connectionStrings>

В С# я использую приведенный ниже код для получения строки подключения:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
     <configSections>
        <section name="appSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false"/>
        <section name="connectionStrings" type="System.Configuration.ConnectionStringsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" requirePermission="false"/>
     <configSections>   
    <connectionStrings>
        <add name="XXX" connectionString="Data Source=.;Initial Catalog=db;User Id=user;Password=pw;" providerName="System.Data.SqlClient"/>
      </connectionStrings>
</configuration>

Это дикая догадка... но я думаю, что видел это раньше, когда у вас было что-то перед элементом ‹configSections› в вашем файле web.config. Например, это вызовет ошибку:

ConfigurationFileMap fileMap = new ConfigurationFileMap("myApp.config"); //Path to your config file
Configuration configuration = ConfigurationManager.OpenMappedMachineConfiguration(fileMap);
this.connectionString = configuration.ConnectionStrings.ConnectionStrings["XXX"].ConnectionString;
person Vin.X    schedule 28.08.2013
comment
Спасибо за ответ! Я не верю, что это так, мой app.config выглядит следующим образом: ‹?xml version=1.0 encoding=utf-8 ?› ‹configuration› ‹configSections› ‹/configSections› ‹connectionStrings› ‹add name=Mockups. Properties.Settings.MockupDSConnectionString connectionString=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\MockupDS.mdb providerName=System.Data.OleDb /› ‹/connectionStrings› ‹/configuration› - person MatthewC; 02.02.2015

Элемент ‹configSections› должен стоять первым:

<configuration>
  <connectionStrings [...] />
  <configSections>
    <sectionGroup name=[...] />
  </configSections>
</configuration>

Вероятно, это не то, что вызывает вашу проблему, но я подумал, что упомяну об этом...

<configuration>
  <configSections>
    <sectionGroup name=[...] />
  </configSections>
  <connectionStrings [...] />
</configuration>

Я столкнулся с той же проблемой. Пожалуйста, проверьте файл machine.config.

person Richard Beier    schedule 24.11.2009
comment
Я думаю, что что-то неправильно сконфигурировано - к сожалению, удаление/установка чего-то, похоже, не исправит это. Даже когда я пытаюсь создать новое соединение DataSource — в мастере соединений — я выбираю соединение OLE DB, выбираю .mdb и нажимаю «ОК», и я получаю всплывающее сообщение о том, что целью вызова было выбрано исключение. и это все! Очень расстраивает.... - person Matty U; 24.11.2009
comment
Я немного ломал голову, пытаясь понять, почему мой App.config не работает для некоторых пользовательских типов - и это было проблемой. Спасибо! - person Matty U; 24.11.2009
comment
в System.Configuration.Configuration.get_ConnectionStrings() в Microsoft.VisualStudio.Shell.Design.Serialization.ConfigurationHelperService.ReadConnectionStrings(String configFileName, DocData configDocData, префикс строки) в Microsoft.VisualStudio.Editors.SettingsDesigner.AppConfigSerializer.Deserialize(DesignTimeSettings Settings, String SectionName, DocData AppConfigDocData, MergeValueMode mergeMode, IUIService UIService) в Microsoft.VisualStudio.Editors.SettingsGlobalObjects.SettingsFileGlobalObject.LoadSettings(String fileName) в Microsoft.VisualStudio.Editors.SettingsGlobalObjects.SettingsFileGlobalObject.BuildType() в Microsoft.VisualStudio.Editors.SettingsGlobalObjects .SettingsFileGlobalObject.GetObjectType() в Microsoft.VisualStudio.Shell.Design.GlobalType.get_ObjectType() в Microsoft.VisualStudio.Shell.Design.GlobalObject.GetHashCode() в Microsoft.VisualStudio.Shell.Design.GlobalObjectService.GlobalKey.GetHashCode() в System.Collections.Ge neric.ObjectEqualityComparer_1_2.FindEntry (ключ TKey) в Microsoft.VisualStudio.Shell.Design.GlobalObjectService.GetGlobalObjects (тип baseType) в Microsoft.VisualStudio.Shell.Design.GlobalObjectService.GetGlobalObjects() в Microsoft.VisualStudio.Design.Serialization.CodeDom. AggregateTypeResolutionService.GetTypeFromGlobalObjects (имя строки, логическое значение throwOnError, логическое значение ignoreCase) в Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType (имя строки, логическое значение throwOnError, логическое значение ignoreCase) в Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService. GetType(строковое имя, логическое значение throwOnError) в System.ComponentModel.Design.Serialization.CodeDomSerializerBase.GetType(ITypeResolutionService trs, имя строки, имена Dictionary_2_2, операторы CodeStatementCollection, String className) в System.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager м anager, объявление CodeTypeDeclaration) в System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(диспетчер IDesignerSerializationManager) в Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager) в Microsoft.VisualStudio.Design.Serialization.CodeDom. VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio.TextManager.Interop.IVsTextBufferDataEvents. OnLoadCompleted (Int32 fReload) - person dmo; 25.03.2010

и когда я удалил

<configuration>
 <system.windows.forms jitDebugging="true"/>
 <configSections>
  <section name="appSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false"/>
  <section name="connectionStrings" type="System.Configuration.ConnectionStringsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" requirePermission="false"/>

..system.windows.forms jitDebugging="true"/>

опять нормально получилось..

В моем случае это была проблема с camelCase. И

<configuration>
 <system.windows.forms jitDebugging="true"/>
 <configSections>
  <section name="appSettings" type="System.Configuration.AppSettingsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="false" requirePermission="false"/>
  <section name="connectionStrings" type="System.Configuration.ConnectionStringsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" requirePermission="false"/>
, и _2_ работают, но они должны быть одинаковыми в имени раздела и в самой строке подключения.

person Community    schedule 23.07.2010

Это сработало для меня, хотя раздел appSettings не нужен (если вы не используете его в конфигурации)

  <connectionStrings>
    <add name="default"
         connectionString=[...] />
  </connectionStrings>
person Niksr    schedule 17.04.2021