我尝试将我的Web应用程序配置为使用tnsnames.ora
应用程序文件夹中的bin
文件,但只有在指定bin
文件夹的完整路径时才能使用它
有没有办法使用相对路径?
我尝试过以下变种而没有运气:
<setting name="TNS_ADMIN" value="bin"/>
<setting name="TNS_ADMIN" value="/bin"/>
<setting name="TNS_ADMIN" value="~/bin"/>
<setting name="TNS_ADMIN" value="\bin"/>
<setting name="TNS_ADMIN" value="~\bin"/>
<setting name="TNS_ADMIN" value="bin/"/>
<setting name="TNS_ADMIN" value="bin\"/>
答案 0 :(得分:2)
TNS_ADMIN也是受支持的环境变量,这意味着您可以通过global.asax的Application_Start中的代码执行此操作:
Environment.SetEnvironmentVariable("TNS_ADMIN", Server.MapPath("~/bin"));
那就是说,我想知道你是否需要这样做。如果您的tnsnames文件是全局的,那么您可以将TNS_ADMIN设置为系统环境变量,然后一切都将使用它。但是,如果这些tns别名特定于您的应用程序,您可以简单地将它们包含在配置本身中:
<oracle.manageddataaccess.client>
<version number="*">
<dataSources>
<dataSource alias="Server1" descriptor="(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = server1-scan.company.com)(PORT = 1526))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = server1.company.com)
)
)
" />
</dataSources>
</version>
</oracle.manageddataaccess.client>
我并不是说你正在做的事情有什么问题,但一般来说,tnsnames用于集中某些tns配置,你想拥有一个似乎是特定于您的应用。