asp.net - 在 web.config 中使用 TNS_ADMIN 的相对路径

标签 asp.net .net oracle odp.net

我正在尝试将我的 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/

相关文章:

c# - Convert.FromBase64String(...) 抛出 FormatException

sql - oracle sql查询时间段集合的并集

.net - .NET Framework 4.0 的详细变更日志

asp.net - 值文件上传 - 适用于 Chrome,但不适用于 IE,Image img = Image.FromStream(Request.InputStream)

.net - 为什么asp.net 成员(member)有一个users 表和一个membership 表?

c# - 如何将值从 ASP.NET MVC Controller 传递到 MVC View 内的 ASP.NET Webforms 控件?

c# - 用列表替换 IEnumerable

sql - 如何通过SQL获取Oracle Connect中的最终父ID列

sql - 在 Oracle SQL 中排除/忽略周末

asp.net - HTTP 错误 401.3 - 未经授权