title: ORA-12571: TNS:packet writer failure with ASP.NET
body: <p>My development team is experiencing numerous <code>ORA-12571: TNS:packet writer failure</code> errors using ASP.NET 3.5 and 4.0 against Oracle 11g. These errors are inconsistent as to when they occur, and are generated by numerous applications. This exception happens while calling random stored procedures, packets, and inline SQL statements.  The Oracle 11 client is installed on the web server.  Some applications use Microsoft System.Data.OracleClient to connect to Oracle, and some use the .NET components provided by oracle (ODP.NET).  Both data access objects come up with the same error.</p>
  
  <p>There are other non .NET applications that run on a different web server, but use the same database server.  The apps do not have any such issues.  My initial thinking is that there is something configured incorrectly on the web server with the Oracle client.</p>
  
  <p><strong>Has anyone else received this error?  What did you do to fix it?</strong></p>
  
  <pre><code>ORA-12571: TNS:packet writer failure
  </code></pre>
  
  <p>Stack Trace:</p>
  
  <pre><code>at System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc)
     at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor&amp; rowidDescriptor, ArrayList&amp; resultParameterOrdinals)
     at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, ArrayList&amp; resultParameterOrdinals)
     at System.Data.OracleClient.OracleCommand.ExecuteReader(CommandBehavior behavior)
     at System.Data.OracleClient.OracleCommand.ExecuteDbDataReader(CommandBehavior behavior)
     at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
     at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
     at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
     at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)
  </code></pre>