asp.net web api-未读取C#web api连接字符串web.config



这是我在这里的第一个问题,所以请温和一点(并就如何改进我的问题提出建设性的批评):)

我正在Web API项目中尝试连接到Oracle数据库。此项目有一个app.config和一个web.config。我不知道为什么我同时拥有这两种功能,但在建立(空的asp.net和Web API)项目时,它就出现了。

这是我连接到数据库并获得连接字符串的代码,也是我获得NullReferenceException的地方:

// create a connection to the database
using (var con = new OracleConnection(ConfigurationManager.ConnectionStrings["Oracle"].ConnectionString))

我已经包含了适当的使用声明:

using Oracle.ManagedDataAccess.Client;
using System.Configuration;
using System.Data;
using Oracle.ManagedDataAccess.Types;

我的web.config文件如下:

<configuration>
  <oracle.manageddataaccess.client>
    <version number="*">
      <dataSources>
        <!-- Customize these connection alias settings to connect to Oracle DB -->
        <dataSource alias="ALIAS" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=IPOFSERVER)(PORT=PORTOFSERVER))(CONNECT_DATA=(SERVICE_NAME=SERVICENAME)));User Id=USERNAME;Password=PASSWORD;" />
      </dataSources>
    </version>
  </oracle.manageddataaccess.client>
  <connectionStrings>
    <clear/>
    <add name="Oracle" connectionString="Data Source=ALIAS;" providerName="Oracle.ManagedDataAccess.Client"/>
  </connectionStrings>
</configuration>

到目前为止我尝试过的东西:

  • 改为使用System.Web.Configuration.WebConfigurationManager
  • 检查参考资料等
  • 正在添加AppSettings键和值,并尝试从web.config文件中读取。同时返回null

除了运行时NullReferenceException之外,我没有收到任何错误。我希望这些信息足以提出解决方案。如果没有,请告诉我,我会提供额外的信息。

尝试以下操作。它在系统内。配置:

var con = ConfigurationManager.ConnectionStrings["Oracle"].ConnectionString;

此外,您可能希望在配置中不使用clear/>进行尝试。

当我的解决方案中有一个控制台应用程序项目用于测试时,我只使用了app.config文件。我将连接字符串存储在web.config中,如下所示:

<connectionStrings>
    <add name="NAME" connectionString="Server=Server;Initial Catalog=TABLE_NAME;User ID=ID;Password=PASSWORD;Application Name='WEBSITE'" />
</connectionStrings>

然后我在代码中引用它,如下所示:

protected const string ConnectionString = @"NAME";

事实证明,这是一个非常简单的修复,就像通常的情况一样。如前所述,我有一个app.config和一个web.config。

web.config中有Oracle客户端设置,因此基于此和以前的经验,我认为连接字符串也应该在那里。但是,当在app.config中定义它时,它是有效的!不过,与2个配置文件混淆了,因为人们希望在web.config而不是app.config中定义连接字符串。

一句话:ConnectionStrings应该在app.config中。

这为我修复了它。

相关内容

  • 没有找到相关文章

最新更新