VS上的Web服务的Oracle.dataAccess.Client.OracleClientFactory错误

时间:2013-07-26 15:49:31

标签: web-services visual-studio-2012 oracle11g entity-framework-4.1

我正在使用Visual Studio 2012上的C#WebService,它使用来自oracle数据库的数据并使用visual studio的EntityManager进行转换。

在我的计算机上它工作正常,但是当我在服务器IIS上发布它时,我收到了这个错误:

  

System.Web.Services.Protocols.SoapException:商店提供商   工厂类型'Oracle.DataAccess.Client.OracleClientFactory'没有   实现IServiceProvider接口。使用商店提供商   实现这个接口。

当我尝试使用Entity框架在我的数据库上建立连接并且我不知道如何查看此问题以便修复它时,会发生这种情况。

DATA

我使用Oracle.DataAccess v 4.112.3和.NETFramework 4.5

这是我的web.config的一部分,带有连接字符串

  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
  </entityFramework>
<connectionStrings>
        <add name="EntitiesCCMX" connectionString="metadata=res://*/ModelCCMX.csdl|res://*/ModelCCMX.ssdl|res://*/ModelCCMX.msl;provider=Oracle.DataAccess.Client;provider connection string=&quot;data source=CCMX;password=rhcs;persist security info=True;user id=CCMX&quot;" providerName="System.Data.EntityClient" />
  <add name="HastusEntities" connectionString="metadata=res://*/ModelHASTUS.csdl|res://*/ModelHASTUS.ssdl|res://*/ModelHASTUS.msl;provider=Oracle.DataAccess.Client;provider connection string=&quot;data source=GIRO2010.WORLD;password=hastus2010;user id=HASTUS2010&quot;" providerName="System.Data.EntityClient" />
      </connectionStrings>

我已经做了什么:

  • 我在服务器上允许32位应用程序
  • 我在计算机和服务器上重新安装了oracle
  • 我尝试在服务器上发送oracle.DataAccess.dll
  • 我配置了在我的数据库中重定向的oranet

如果您还需要更多信息,请询问。我真的被这个人困住了......

编辑:

管理“修复”它,但我不知道为什么,如果它继续工作一两天,我会发布所有我做过的事情。

无论如何,简而言之, - 我添加了8个dll(oci,ociw32,Oracle.DataAccess,oraocci11,oraocciei11,oraocciocu11,OraOps11w,System.Data.OracleClient) - 我在Machine.Config(Microsoft.NET \ Framework \ v4.0.30319 \ Config)中更改了这一行

    <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />

由此行(版本= 4.112.3.0)

   <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client" description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />

我在服务器上安装了Visual Studio professional 2012(而且我认为这个安装会移动一些库或一些路径)

我肯定会回来的。

EDIT2

如果不触及任何东西,就不再工作了。但现在又出现了另一个错误。

ORA-12154: TNS:could not resolve the connect identifier specified

1 个答案:

答案 0 :(得分:0)

您的第一个问题在oracle的网站上说明 http://www.oracle.com/technetwork/issue-archive/2011/11-sep/o51odt-453447.html 这是oracle版本,你需要更新版本。 最后一个错误只是一个连接错误。尝试从服务器调整数据库,如果它工作,检查您的连接字符串。