我正在尝试将我的 Web 应用程序配置为使用位于应用程序的 bin
文件夹中的 tnsnames.ora
文件,但它仅在我指定了完整路径时才有效。 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\"/>
最佳答案
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 配置,您希望在其中拥有一个似乎特定于您的应用程序的文件。
关于asp.net - 在 web.config 中使用 TNS_ADMIN 的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33735007/