我用dotnet核心编写的更改查询通知服务在Azure环境中不起作用。下面是代码的一部分:
if (_connection.State == ConnectionState.Open)
{
OracleDependency.Port = 1005;
DbCommand dbCommand = new OracleCommand("select * from users");
dbCommand.Connection = _connection;
OracleCommand oracleCommand = ((OracleCommand)dbCommand);
oracleCommand.AddRowid = true;
var oracleDependency = new OracleDependency(oracleCommand);
oracleDependency.QueryBasedNotification = true;
oracleDependency.OnChange += eventHandler;
oracleCommand.ExecuteNonQuery();
}问题是eventHandler未被调用。然而,同样的代码在我的本地环境中工作得很好,而不是Azure。我尝试检查oracle azure服务器上的日志,在文件/apps/oracle/diag/rdbms/orcl/orcl/trace/alert_orcl.log ->中找到以下条目
kponepms: encountered ORA-12535 for location net8://(ADDRESS=(PROTOCOL=tcp)(HOST=<SOMEIP>)(PORT=1005))?PR=0 subname CHNF1261 after 7200000 milisecs你对此有什么想法吗?
发布于 2020-09-09 19:46:46
正如我们所同意的,对于我们分享的评论,问题是由于Azure应用程序和IaaS中的数据库之间的通信问题。
默认情况下,任何IaaS Azure服务器都会关闭所有端口,除了常见的端口( 22、443、80.)。为IaaS入站流量创建新的网络规则应该可以解决此问题。
https://stackoverflow.com/questions/63793797
复制相似问题