Раньше я не использовал роли приложений, но из того, что я знаю о перфектном хите, можно сказать, что после установки роли приложения невозможно вернуться к предыдущей версии. контекст безопасности. Таким образом, соединение не может быть повторно использовано в пуле. Это само по себе огромный перфоманс. удар, заставляющий вас дважды подумать об использовании ролей приложения.
Однако в документах говорится, что начиная с SQL Server 2005 существует способ запомнить исходный контекст безопасности в виде файла cookie, возвращенного из sp_setapprole, и после этого использовать sp_unsetapprole, чтобы вернуться к нему. Таким образом, объединение должно работать снова. На твоем месте я бы сравнил перф. с парой простых утверждений / sprocs.
По какой причине вы не используете стандартный API-членство ASP.NET на уровне приложения вместо ролей приложения?