Mar*_*isa 6 c# asp.net oracle iis
我知道,我知道,你要告诉我检查我的路径和注册表.我有,相信我.
我的情况 - 我们有两个框运行相同的代码和相同的web.config文件.以下是两者的规格.
相关配置部分:
<oracle.manageddataaccess.client>
<version number="*">
<settings>
<setting name="TraceFileName" value="C:\MDM\TraceLog\"/>
<setting name="TraceLevel" value="7"/>
<setting name="SelfTuning" value="0"/>
<setting name="TNS_ADMIN" value="C:\MDM\tnsnames"/>
</settings>
</version>
</oracle.manageddataaccess.client>
Run Code Online (Sandbox Code Playgroud)
当我们从非托管Oracle升级到托管时,我们的问题就开始了.
症状:我们网站的主页面具有自动刷新功能,每2分钟重新加载页面.我们的一些用户在一天结束时离开时会将其打开.在午夜,应用程序池回收.大约12:02,自Oracle.ManagedDataAccess.dll发布以来我们一直无法解决连接标识符错误,这些错误在任何调用数据库时都会持续存在,直到应用程序池被回收为止,此时所有内容都是如此游泳工作.
Oracle.ManagedDataAccess.Client.OracleException (0x80004005): ORA-12154: TNS:could not resolve the connect identifier specified ---> OracleInternal.Network.NetworkException (0x00002F7A): ORA-12154: TNS:could not resolve the connect identifier specified
at OracleInternal.Network.AddressResolution..ctor(String TNSAlias, String instanceName)
at OracleInternal.Network.OracleCommunication.DoConnect(String tnsDescriptor)
at OracleInternal.ServiceObjects.OracleConnectionImpl.Connect(ConnectionString cs, Boolean bOpenEndUserSession, String instanceName)
at OracleInternal.ConnectionPool.PoolManager`3.CreateNewPR(Int32 reqCount, Boolean bForPoolPopulation, ConnectionString csWithDiffOrNewPwd, String instanceName)
at OracleInternal.ConnectionPool.PoolManager`3.Get(ConnectionString csWithDiffOrNewPwd, Boolean bGetForApp, String affinityInstanceName, Boolean bForceMatch)
at OracleInternal.ConnectionPool.OraclePoolManager.Get(ConnectionString csWithNewPassword, Boolean bGetForApp, String affinityInstanceName, Boolean bForceMatch)
at OracleInternal.ConnectionPool.OracleConnectionDispenser`3.Get(ConnectionString cs, PM conPM, ConnectionString pmCS, SecureString securedPassword, SecureString securedProxyPassword)
at Oracle.ManagedDataAccess.Client.OracleConnection.Open()
Run Code Online (Sandbox Code Playgroud)
TNSPING能够毫无问题地连接到数据库.我昨晚留下的页面直接打开我们的盒子,只有其中一个显示了这个问题.tnsnames.ora文件位于两台计算机上的c:\ mdm\tnsnames目录中.tnsnames.ora文件是我们数据库团队中最新的文件.
最令人愤怒的部分是,一旦应用程序池重置,连接就能很好地工作.没有问题,没有性能影响,它根本没有出现在我们较低的环境中.我无法提供跟踪日志,因为无论我对跟踪设置做什么,都不会在c:\ mdm\tracelog目录中显示任何内容.
任何人都有任何关于为什么会这样的想法?
编辑:没有环境变量TNS_ADMIN; 注册表变量指向与配置文件相同的位置.
所有用户都拥有tnsnames.ora文件的完全权限.
只有两个tnsnames.ora文件,我的和前一个安装中包含的示例文件.有三个sqlnet.ora文件,一个在与tnsnames.ora文件相同的目录中,一个在%ORACLEHOME%\network\admin文件夹中,另一个在%ORACLEHOME%\network\admin\sample文件夹中.
小智 0
如果重置 AppPool 后一切正常,那么听起来它与 TNSNAMES.ORA 无关。听起来更像是 AppPool 正在停止但没有回收。
另外,您提到您的主页每两分钟刷新一次并访问服务器,如果它们在AppPool回收时访问服务器并失败,这是否会导致AppPool的快速失败保护将其关闭?AppPool 带有一个生成回收事件日志条目的选项,默认情况下它不会显示太多,您需要选择要记录的内容。该日志可能包含更多关于回收事件未执行的原因的线索。
日志本身有点难找到,这里的链接可能对您有帮助:
https://webmasters.stackexchange.com/questions/17630/which-event-log-file-does-iis-7-app-pool-log-to
| 归档时间: |
|
| 查看次数: |
2170 次 |
| 最近记录: |