Когда я пытаюсь установить роль приложения в SqlConnection с помощью sp_setappprole, я иногда появляется следующая ошибка в журнале событий Windows...
Соединение было разорвано, поскольку открывший его участник впоследствии принял новый контекст безопасности, а затем попытался сбросить соединение в олицетворенном контексте безопасности. Этот сценарий не поддерживается. См. «Обзор олицетворения» в электронной документации.)
... и в моем приложении возникает соответствующее исключение.
Это пулы соединений, и было время, когда пулы соединений были несовместимы с ролями приложений — на самом деле старый совет Microsoft заключался в том, чтобы отключить пул соединений (!!), но с введением sp_unsetapprole теперь (теоретически) можно очистить соединение перед его возвратом в пул.
Я считаю, что эти ошибки возникают, когда (по неизвестным причинам) sp_unsetapprole не запускается для соединения до его закрытия и возврата в пул соединений. Затем sp_approle обречен на сбой, когда это соединение возвращается из пула.
Я могу поймать и обработать это исключение, но я бы предпочел обнаружить надвигающийся сбой и вообще избежать исключения (и сообщений в журнале событий).
Можно ли обнаружить проблему, не вызывая исключения?
Мысли или советы приветствуются.