错误175:在配置中找不到指定的存储提供程序,或无效 [英] Error 175: The specified store provider cannot be found in the configuration, or is not valid

查看:1131
本文介绍了错误175:在配置中找不到指定的存储提供程序,或无效的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我刚刚加入了一个项目,并在64位机器上安装了Microsoft Visual Studio Professional 2012版本11.0.51106.01和Microsoft SQL Server 2008 R2。



另一个团队成员能够从他的机器构建解决方案,但从我的机器我得到以下错误:



错误175:在配置中找不到指定的商店提供者,或无效



在我的.edmx文件中,< edmx:StorageModels>< / edmx:StorageModels> 标记为错误。文件顶部的相关片段是:

 <?xml version =1.0encoding =utf-8 >?; 
< edmx:Edmx Version =2.0xmlns:edmx =http://schemas.microsoft.com/ado/2008/10/edmx>
<! - EF运行时内容 - >
< edmx:运行时>
<! - SSDL内容 - >
< edmx:StorageModels>
< Schema Namespace =[NAME] .StoreAlias =SelfProvider =System.Data.SqlClientProviderManifestToken =2008xmlns:store =http://schemas.microsoft.com/ ado / 2007/12 / edm / EntityStoreSchemaGeneratorxmlns =http://schemas.microsoft.com/ado/2009/02/edm/ssdl>

在对类似帖子进行研究时,其他人建议检查machine.config文件中的DbProviderFactories。 / p>

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config

 < system.data> 
< DbProviderFactories>
< add name =Odbc Data Providerinvariant =System.Data.Odbcdescription =。用于Odbc的Net Framework数据提供者type =System.Data.Odbc.OdbcFactory,System.Data,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089/>
< add name =OleDb Data Providerinvariant =System.Data.OleDbdescription =。OleDb的Net Framework数据提供者type =System.Data.OleDb.OleDbFactory,System.Data,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089/>
< add name =OracleClient Data Providerinvariant =System.Data.OracleClientdescription =.Net Framework Data Provider for Oracletype =System.Data.OracleClient.OracleClientFactory,System.Data.OracleClient ,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089/>
< add name =SqlClient Data Providerinvariant =System.Data.SqlClientdescription =.SqlServer的Ne​​t Framework数据提供者type =System.Data.SqlClient.SqlClientFactory,System.Data,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089/>
< add name =Microsoft SQL Server Compact Data Providerinvariant =System.Data.SqlServerCe.3.5description =.NET Framework Data Provider for Microsoft SQL Server Compacttype =System.Data.SqlServerCe .SqlCeProviderFactory,System.Data.SqlServerCe,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91/>
< add name =Microsoft SQL Server Compact Data Provider 4.0invariant =System.Data.SqlServerCe.4.0description =.NET Framework Data Provider for Microsoft SQL Server Compacttype =System.Data SqlServerCe.SqlCeProviderFactory,System.Data.SqlServerCe,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91/>
< / DbProviderFactories>
< /system.data>

* 编辑:为.Net 4.0添加相关的DbProviderFactories
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

 <系统。数据> 
< DbProviderFactories>
< add name =IBM DB2 for i5 / OS .NET Providerinvariant =IBM.Data.DB2.iSeriesdescription =。i5 / OS的.NET Framework数据提供程序type =IBM.Data .DB2.iSeries.iDB2Factory,IBM.Data.DB2.iSeries,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = 9cdb2ebfb1f93a26/>
< add name =Microsoft SQL Server Compact Data Providerinvariant =System.Data.SqlServerCe.3.5description =.NET Framework Data Provider for Microsoft SQL Server Compacttype =System.Data.SqlServerCe .SqlCeProviderFactory,System.Data.SqlServerCe,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91/>< add name =Microsoft SQL Server Compact Data Provider 4.0invariant =System.Data.SqlServerCe.4.0 description =.NET Framework Data Provider for Microsoft SQL Server Compacttype =System.Data.SqlServerCe.SqlCeProviderFactory,System.Data.SqlServerCe,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91/>< ; / DbProviderFactories>
< DbProviderFactories />
< /system.data>

团队中的另一个人似乎回想起这个问题,它与iSeries配置或设置相关联我的Sql Server或Visual Studio安装的更新之一。



有没有人看到这个或有一个修改它的想法,所以我可以得到一个干净的构建? p>

ANSWER

 < system.data> ; 
< DbProviderFactories>
< add name =IBM DB2 for i5 / OS .NET Providerinvariant =IBM.Data.DB2.iSeriesdescription =。i5 / OS的.NET Framework数据提供程序type =IBM.Data .DB2.iSeries.iDB2Factory,IBM.Data.DB2.iSeries,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = 9cdb2ebfb1f93a26/>
< add name =Microsoft SQL Server Compact Data Providerinvariant =System.Data.SqlServerCe.3.5description =.NET Framework Data Provider for Microsoft SQL Server Compacttype =System.Data.SqlServerCe .SqlCeProviderFactory,System.Data.SqlServerCe,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91/>
< add name =Microsoft SQL Server Compact Data Provider 4.0invariant =System.Data.SqlServerCe.4.0description =.NET Framework Data Provider for Microsoft SQL Server Compacttype =System.Data SqlServerCe.SqlCeProviderFactory,System.Data.SqlServerCe,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91/>
< / DbProviderFactories>
< DbProviderFactories />
< /system.data>

格式化我的代码时,我发布了我机器的配置设置,我注意到有两个关闭标签< DbProviderFactories> 我删除了我们认为在iSeries设置之后添加的< DbProviderFactories /> 添加。保存文件后,我重新启动了我的机器并且构建成功了。



侧面注意:我的代码在VS 2010中成功构建,而无需

解决方案

C:\Windows\Microsoft.NET\Framework\v4 .0.30319\Config 发布的片段有一个无关紧要的< DbProviderFactories /> ,导致错误175



您的文件:

 <系统。数据> 
< DbProviderFactories>
< add name =IBM DB2 for i5 / OS .NET Providerinvariant =IBM.Data.DB2.iSeriesdescription =。i5 / OS的.NET Framework数据提供程序type =IBM.Data .DB2.iSeries.iDB2Factory,IBM.Data.DB2.iSeries,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = 9cdb2ebfb1f93a26/>
< add name =Microsoft SQL Server Compact Data Providerinvariant =System.Data.SqlServerCe.3.5description =.NET Framework Data Provider for Microsoft SQL Server Compacttype =System.Data.SqlServerCe .SqlCeProviderFactory,System.Data.SqlServerCe,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91/>< add name =Microsoft SQL Server Compact Data Provider 4.0invariant =System.Data.SqlServerCe.4.0 description =.NET Framework Data Provider for Microsoft SQL Server Compacttype =System.Data.SqlServerCe.SqlCeProviderFactory,System.Data.SqlServerCe,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91/>
< / DbProviderFactories>
< DbProviderFactories />
< /system.data>

应该是:

 < system.data> 
< DbProviderFactories>
< add name =IBM DB2 for i5 / OS .NET Providerinvariant =IBM.Data.DB2.iSeriesdescription =。i5 / OS的.NET Framework数据提供程序type =IBM.Data .DB2.iSeries.iDB2Factory,IBM.Data.DB2.iSeries,Version = 12.0.0.0,Culture = neutral,PublicKeyToken = 9cdb2ebfb1f93a26/>
< add name =Microsoft SQL Server Compact Data Providerinvariant =System.Data.SqlServerCe.3.5description =.NET Framework Data Provider for Microsoft SQL Server Compacttype =System.Data.SqlServerCe .SqlCeProviderFactory,System.Data.SqlServerCe,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91/>< add name =Microsoft SQL Server Compact Data Provider 4.0invariant =System.Data.SqlServerCe.4.0 description =.NET Framework Data Provider for Microsoft SQL Server Compacttype =System.Data.SqlServerCe.SqlCeProviderFactory,System.Data.SqlServerCe,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 89845dcd8080cc91/>
< / DbProviderFactories>
< /system.data>


I just joined a project and installed Microsoft Visual Studio Professional 2012 Version 11.0.51106.01 and Microsoft SQL Server 2008 R2 on a 64-bit machine.

Another team member is able to build the solution from his machine, but from my machine I get the following error:

Error 175: The specified store provider cannot be found in the configuration, or is not valid

In my .edmx file, all of the code between the <edmx:StorageModels></edmx:StorageModels> tags is marked for the error. The relevant snippet from the top of the file is:

 <?xml version="1.0" encoding="utf-8"?>
<edmx:Edmx Version="2.0" xmlns:edmx="http://schemas.microsoft.com/ado/2008/10/edmx">
  <!-- EF Runtime content -->
  <edmx:Runtime>
    <!-- SSDL content -->
    <edmx:StorageModels>
    <Schema Namespace="[NAME].Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2008" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/02/edm/ssdl">

In doing research on similar posts, others have suggested checking the DbProviderFactories in the machine.config file.

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG\machine.config

<system.data>
    <DbProviderFactories>
        <add name="Odbc Data Provider" invariant="System.Data.Odbc" description=".Net Framework Data Provider for Odbc" type="System.Data.Odbc.OdbcFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <add name="OleDb Data Provider" invariant="System.Data.OleDb" description=".Net Framework Data Provider for OleDb" type="System.Data.OleDb.OleDbFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <add name="OracleClient Data Provider" invariant="System.Data.OracleClient" description=".Net Framework Data Provider for Oracle" type="System.Data.OracleClient.OracleClientFactory, System.Data.OracleClient, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <add name="SqlClient Data Provider" invariant="System.Data.SqlClient" description=".Net Framework Data Provider for SqlServer" type="System.Data.SqlClient.SqlClientFactory, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/>
        <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
  <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
</DbProviderFactories>
</system.data>

*Edit: Added the relevant DbProviderFactories for .Net 4.0 C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config

<system.data>
    <DbProviderFactories>
        <add name="IBM DB2 for i5/OS .NET Provider" invariant="IBM.Data.DB2.iSeries" description=".NET Framework Data Provider for i5/OS" type="IBM.Data.DB2.iSeries.iDB2Factory, IBM.Data.DB2.iSeries, Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26"/>
        <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/><add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/></DbProviderFactories>
    <DbProviderFactories/>
</system.data>

Another guy on the team seems to recall this problem and it being associated with an iSeries configuration or setting in one of the updates to my Sql Server or Visual Studio install.

Has anyone see this before or have an idea for fixing it so I can get a clean build?

ANSWER

<system.data>
    <DbProviderFactories>
        <add name="IBM DB2 for i5/OS .NET Provider" invariant="IBM.Data.DB2.iSeries" description=".NET Framework Data Provider for i5/OS" type="IBM.Data.DB2.iSeries.iDB2Factory, IBM.Data.DB2.iSeries, Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26"/>
        <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
        <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
    </DbProviderFactories>
    <DbProviderFactories/>
</system.data>

When formatting my code I posted for my machine's configuration settings, I noticed there are two closing tags for <DbProviderFactories> I removed the <DbProviderFactories/> which we believe to have been added after the iSeries settings were added. After saving the file, I rebooted my machine and the build succeeded.

Side Note: My code did successfully build in VS 2010 without having to make this change.

解决方案

In the C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config snippet posted there is an extraneous <DbProviderFactories/> that is causing the Error 175.

Your file:

<system.data>
    <DbProviderFactories>
        <add name="IBM DB2 for i5/OS .NET Provider" invariant="IBM.Data.DB2.iSeries" description=".NET Framework Data Provider for i5/OS" type="IBM.Data.DB2.iSeries.iDB2Factory, IBM.Data.DB2.iSeries, Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26"/>
        <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/><add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
    </DbProviderFactories>
    <DbProviderFactories/>
</system.data>

Should be:

<system.data>
    <DbProviderFactories>
        <add name="IBM DB2 for i5/OS .NET Provider" invariant="IBM.Data.DB2.iSeries" description=".NET Framework Data Provider for i5/OS" type="IBM.Data.DB2.iSeries.iDB2Factory, IBM.Data.DB2.iSeries, Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26"/>
        <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/><add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
    </DbProviderFactories>
</system.data>

这篇关于错误175:在配置中找不到指定的存储提供程序,或无效的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆