在Windows Service中托管WCF服务时,读取TNSNAMES.ORA

时间:2018-12-21 19:21:46

标签: c# oracle wcf

我有一个 WCF服务,我正在托管在Windows Service中。我将Windows服务设置为以网络服务身份登录。在Windows服务的App.config文件中,我给出了如下连接字符串

{{1}}

我能够安装和运行Windows Service。我还要确保我的WCF服务正在运行。但是当我打电话给客户时,我在WCF服务端遇到以下错误

ORA-12154:TNS:无法解析指定的连接标识符

我的问题是我的Windows服务(托管服务)无法读取我的tnsnames.ora

我什至将TNS_ADMIN环境变量更改为C驱动器中具有tnsnames.ora但失败的位置。

如果我将WCF服务托管在控制台应用程序中,则一切正常。但是我们希望Windows服务托管WCF服务。

我的服务从C:\ Dept \ ServerWindowsHost \ bin \ Debug

运行

我在下面看到了,但由于我无法扩展连接字符串而无法使用。我尝试扩展它,效果很好。

Can't connect to Oracle from a windows service (error: ORA-12154: TNS:could not resolve service name (12154) )

解决方案

我能够解决此问题。我使用过程监视器来解决此问题。

https://docs.microsoft.com/en-us/sysinternals/downloads/procmon

它清楚地向我显示了Windows服务正在寻找tnsnames.ora的位置。我只是将tnsnames.ora复制到这些文件夹中,一切正常。

enter image description here

0 个答案:

没有答案