Mat*_*y U 3 .net configuration connection-string visual-studio
我一直在VS2005中开发一个项目,该项目利用Access数据库的本地连接.
在过去的一周里,我安装了.NET framework 3.5以供不同的项目和VS6使用.
我回到我的VS2005应用程序,然后突然出现了一些大问题:
在使用我的OLEDB连接的任何类的设计器中显示:
无法将类型为"System.Configuration.DefaultSection"的对象强制转换为"System.Configuration.ConnectionStringsSection".隐藏
在Microsoft.VisualStudio.Editors.SettingsDesigner.AppConfigSerializer.Deserialize(DesignTimeSettings设置,Microsoft.VisualStudio.Shell.Design.Serialization.ConfigurationHelperService.ReadConnectionStrings(String configFileName,DocData configDocData,String prefix)的System.Configuration.Configuration.get_ConnectionStrings()中. Microsoft.VisualStudio.Editors.SettingsGlobalObjects上Microsoft.VisualStudio.Editors.SettingsGlobalObjects.SettingsFileGlobalObject.BuildType()的Microsoft.VisualStudio.Editors.SettingsGlobalObjects.SettingsFileGlobalObject.LoadSettings(String fileName)中的字符串SectionName,DocData AppConfigDocData,MergeValueMode mergeMode,IUIService UIService) Microsoft.VisualStudio.Shell.Design.GlobalHashCode()at Microsoft.VisualStudio.Shell.Design.GlobalObjectService.GlobalKey.GetHashCode()的Microsoft.VisualStudio.Shell.Design.GlobalType.get_ObjectType()位于Microsoft.VisualStudio.Shell.Design.GlobalType.get_ObjectType()的.SettingsFileGlobalObject.GetObjectType()在System.Collections.Generic.ObjectEqualityComparer
1.GetHashCode(T obj) at System.Collections.Generic.Dictionary2.FindEntry(TKey键)位于Microsoft.VisualStudio.Shell.Design.CignDom.AggregateTypeResolutionService的Microsoft.VisualStudio.Shell.Design.GlobalObjectService.GetGlobalObjects()中的Microsoft.VisualStudio.Shell.Design.GlobalObjectService.GetGlobalObjects(Type baseType). Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType上的Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType(String name,Boolean throwOnError,Boolean ignoreCase)中的GetTypeFromGlobalObjects(String name,Boolean throwOnError,Boolean ignoreCase)(2 names) at System.ComponentModel.Design.Serialization.CodeDomSerializerBase.FillStatementTable(IDesignerSerializationManager manager, IDictionary table, DictionarySystem.ComponentModel.Design.Serialization.TypeCodeDomSerializer.Deserialize(IDesignerSerializationManager manager )的System.ComponentModel.Design.Serialization.CodeDomSerializerBase.GetType(ITypeResolutionService trs,String name,Dictionary 2 names,CodeStatementCollection statements,String className)中的String name,Boolean throwOnError),CodeTypeDeclaration声明)在System.ComponentMo Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.DeferredLoadHandler.Microsoft.VisualStudio中的Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)中的del.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager). TextManager.Interop.IVsTextBufferDataEvents.OnLoadCompleted(Int32 fReload)
当我运行应用程序时,我在启动时遇到以下异常:
"无法识别的配置部分connectionStrings."
在线查看,这些问题似乎通常与VS2005中构建并部署在.net 1.1框架上的内容有关; 但这都是在VS(不在IIS上)本地作为Windows窗体应用程序运行的.我尝试卸载并重新安装VS2K5无济于事.
有什么想法吗?谢谢,马特
这是一个非常古老的帖子,我知道,但我最近遇到了同样的问题,我通过以下方式修复了它:
<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>
Run Code Online (Sandbox Code Playgroud)
在连接字符串之前:
<connectionStrings>
<add name="XXX" connectionString="Data Source=.;Initial Catalog=db;User Id=user;Password=pw;" providerName="System.Data.SqlClient"/>
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
所以我的app.config看起来像:
<?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>
Run Code Online (Sandbox Code Playgroud)
在C#中我使用下面的代码来检索我的连接字符串:
ConfigurationFileMap fileMap = new ConfigurationFileMap("myApp.config"); //Path to your config file
Configuration configuration = ConfigurationManager.OpenMappedMachineConfiguration(fileMap);
this.connectionString = configuration.ConnectionStrings.ConnectionStrings["XXX"].ConnectionString;
Run Code Online (Sandbox Code Playgroud)
这是一个疯狂的猜测......但我想我之前在你的web.config中的<configSections>元素之前有了一些东西.例如,这会导致错误:
<configuration>
<connectionStrings [...] />
<configSections>
<sectionGroup name=[...] />
</configSections>
</configuration>
Run Code Online (Sandbox Code Playgroud)
<configSections>元素需要先来:
<configuration>
<configSections>
<sectionGroup name=[...] />
</configSections>
<connectionStrings [...] />
</configuration>
Run Code Online (Sandbox Code Playgroud)
可能不是什么导致你的问题,但我想我会提到它...
| 归档时间: |
|
| 查看次数: |
12707 次 |
| 最近记录: |