我有一个 Quartz for .Net 服务,它使用System.Data.OracleClient从 Oracle 12c 数据库中检索数据。从控制台应用程序尝试此操作时,我能够连接并获取值,但是一旦我迁移代码并将其捆绑到 Quartz 调度程序服务中,我就会收到错误
不支持连接参数:'DATABASE'
我已经在几个连接到 Sql Server 的 Quartz.net 作业上实现了这一点,没有任何问题。这个问题似乎是 Oracle 提供程序的连接字符串所特有的。
我的 Quartz 服务实现取自这里的示例:
我的连接字符串如下:
<connectionStrings>
<add name="FCUBS" connectionString="user id=MYUSERNAME;password=mypassword*;data source=10.167.67.667:6767/COMPANYLIVE" />
对于上下文,随附的查询操作是:
public static double GetExchangeRate()
{
var flex = new FrontOfficeTransaction();
double rate = 0.00;
try
{
using (OracleConnection connp = new OracleConnection(FCUBSConnection))
{
connp.Open();
OracleCommand cmd1 = new OracleCommand("select * from fgpreprod.xxxx_rates where ccy4 in ('USD','GBP') AND ccy2 in ('USD','GBP') and branch_code='089' and RATE_TYPE='MIDRATE'", connp);
OracleDataReader dr1 = cmd1.ExecuteReader();
while (dr1.Read())
{
flex.ExchangeRate = Convert.ToDouble(dr1["MID_RATE"]);
rate = flex.ExchangeRate;
}
}
}
catch (Exception ex)
{
ExceptionLogging.SendErrorToText(ex);
}
return rate;
}
根据某些来源的建议,我尝试使用服务器而不是数据源,但我仍然遇到相同的错误:
<connectionStrings>
<add name="FCUBS" connectionString="user id=MYUSERNAME;password=mypassword*;Server=10.167.67.667:6767/COMPANYLIVE" />