web.config中的Oracle连接字符串抛出错误

时间:2015-08-10 14:07:05

标签: c# asp.net asp.net-mvc

我的Web.config中有以下连接字符串:

<add name="OracleString" providerName="System.Data.OracleClient" ConnectionString ="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;"/>

当我尝试使用以下代码检索相同的内容时

ConnectionStringSettings connectionStringSettings = ConfigurationManager.ConnectionStrings["OracleString"];

DbProviderFactory factory = DbProviderFactories.GetFactory(connectionStringSettings.ProviderName);

DbConnection conn = factory.CreateConnection();
//set the connection string
conn.ConnectionString = connectionStringSettings.ConnectionString;

抛出异常:

  

关键字:不支持说明

3 个答案:

答案 0 :(得分:0)

模式和标准是一个很棒的想法。

尝试更改Microsoft's Documentation中指示的连接字符串,我相信它会起作用

在你的情况下,我认为这将解决问题:

<add name="OracleString"
  connectionString="Server=tcp:MyHost,MyPort;Database=MyOracleSID;UserID=myUsername;Password=myPassword"
  providerName="System.Data.OracleClient" />

编辑: 经过一些研究后,我发现你正在使用的连接类型对于oracle是可能的,但是我相信你在描述之前忘记了数据源或服务器,这样的事情应该可以解决这个问题

<add name="OracleString" providerName="System.Data.OracleClient" ConnectionString="Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort))(CONNECT_DATA=(SERVICE_NAME=MyOracleSID)));uid=myUsername;pwd=myPassword;"/>

Resource

答案 1 :(得分:0)

Coder2014,几天前我的web.Config出了问题。将connectionString粘贴到web.config时,该字符串使用了不同的enconding。 为了验证这一点,我使用http://www.xmlvalidation.com/来验证文件。

如果不是你的情况,也许你应该使用tnsnames.ora。看看https://www.connectionstrings.com/oracle-data-provider-for-net-odp-net/

答案 2 :(得分:0)

基于错误消息格式的类似帖子

  

不支持关键字______

问题似乎在于引擎无法识别“描述”是什么(在连接字符串的开头)。

我认为你的连接字符串不应该那样。 您复制并粘贴了TNSnames.ora中的内容。

oracle连接字符串的示例是:

<add name="oracleConnectionString"
     connectionString="Server=yourDBServer; User ID=userIdToConnectWith; Password=userIdPassword; Unicode=True"
     providerName="System.Data.OracleClient" />

从上面的示例中,我不确定 - 但我认为“MyOracleSID”将取代“yourDBServer”。