У меня есть этот код:
using (OracleConnection conn = new OracleConnection(config.ConnectionStringLms))
{
conn.Open();
using (OracleCommand cmd = conn.CreateCommand())
{
NLog.LogManager.GetCurrentClassLogger().Trace("Clearing temp lms users table...");
cmd.CommandText = "DELETE FROM TMPTABLEFORUSERSUPDATING;";
cmd.ExecuteNonQuery();
NLog.LogManager.GetCurrentClassLogger().Trace("Done clearing temp lms users table...");
}
}
Но когда я его выполняю, он просто застревает в cmd.ExecuteNonQuery () и не переходит к NLog. Любой другой запрос работает. Когда я пытаюсь выполнить точно такой же запрос к самой БД, он работает просто отлично. Не исключение не выбрасывается. Oracle 11.2 express.
EDIT: код для воспроизведения проблемы:
public void ClearTempLmsUsersTable()
{
try
{
using (OracleConnection conn = new OracleConnection(config.ConnectionStringLms))
{
conn.Open();
using (OracleCommand cmd = conn.CreateCommand())
{
NLog.LogManager.GetCurrentClassLogger().Trace("Clearing temp lms users table...");
cmd.CommandText = "DELETE FROM TMPTABLEFORUSERSUPDATING";
cmd.ExecuteNonQuery();
NLog.LogManager.GetCurrentClassLogger().Trace("Done clearing temp lms users table...");
}
}
}
catch (Exception exx)
{
NLog.LogManager.GetCurrentClassLogger().Error(exx);
}
}
Я также установил точку останова в NLog.LogManager.GetCurrentClassLogger (). Error (exx);и он не попадает в него.
Вызывается контроллером:
[HttpPost]
public HttpResponseMessage Post([FromBody] Request req)
{
Dal dal = new Dal();
dal.ClearTempLmsUsersTable();
}
Пока config.ConnectionStringLms допустим, не равен нулю и может подключаться.