Error 18059: Impersonation Contexts

  • We have an app (from Active Networks) which, since being upgraded and moving to SQL Server 2012, repeatedly throws this error multiple times through the day: Error: 18059, Severity: 20, State: 1.

    From what I've read, documentation points to this being a problem with application pooling and security impersonation. As far as I can tell (from a profiler trace), it seems like the app initiates a connection, assumes an application role, then a new connection is made with the same credentials which throws the error. But, I may be incorrect in my observations.

    Has anyone seen anything like this before? The vendor seems certain that we're an isolated case and they haven't seen the same problem anywhere else, but we're no further towards resolving the error.

  • Which version of SQL Server were running prior to SQL 2012?

    How is the connection string set for the application?

    When you use an application role and use connection pooling, you must unset the application role before logically disconnecting in the client code. If you do not, you will get an error when you try to reuse a connection.

    In SQL 2000, it was not possible to unset application roles at all, and you could not combine application roles and connection pooling, but SQL 2005 introduced sp_unset_approle. But this does not mean that your vendor uses it.

    [font="Times New Roman"]Erland Sommarskog, SQL Server MVP, www.sommarskog.se[/font]

  • Erland,

    Thanks for your help and advice.

    It was on SQL Server 2000 prior to moving. I made a mistake in my earlier post also: it's not on SQL Server 2012 now, it's on 2008 R2.

    I haven't seen the connection string myself. I'll see if I can get the developers to send me a copy today. Your description of the use of application roles and connection pooling seems to match the scenario. I'll take a closer look at the profiler trace.

Viewing 3 posts - 1 through 2 (of 2 total)

You must be logged in to reply to this topic. Login to reply