Oracle Managed ODP.NET找不到tnsnames.ora

Sea*_*een 7 .net oracle managed odp.net

我的托管ODP.net webapp在本地工作,但在将其部署到服务器时,它失败并显示错误:

"TNS:监听器当前不知道连接描述符中请求的服务"

从环顾四周看,这似乎是因为它无法访问tnsnames.ora文件.

我试过以下但没有成功:

  • 将tnsnames.ora文件(本地工作的文件)放入[oracle home] [product] ... \network\admin文件夹.
  • 在Managed ODP的web.config部分中设置指向环境变量的TNS_ADMIN设置.
  • 在Managed ODP的web.config部分中设置TNS_ADMIN设置直接指向tnsnames.ora文件.

在服务器上,尝试运行tnsping会产生错误TNS-03502:未找到消息3502; product = NETWORK,facility = TNS没有消息文件

我错过了什么?

Bra*_*vic 11

尝试使用不依赖于tnsnames.ora 的连接字符串,例如:

Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=MyHost)(PORT=MyPort)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=MyOracleSID)));User Id=myUsername;Password=myPassword;
Run Code Online (Sandbox Code Playgroud)

  • 但这并没有回答问题. (4认同)

小智 6

只需将tns_admin路径添加到web.config或app.config并将其指向您拥有tnsnames.ora文件的文件夹即可.

<oracle.manageddataaccess.client>
    <version number="*">
      <settings>
        <setting name="tns_admin" value="E:\oracle11\product\11.2.0\client_1\network\admin" />
      </settings>
    </version>
</oracle.manageddataaccess.client>
Run Code Online (Sandbox Code Playgroud)