Tag: 应用程序角色

检测不可用的池化SqlConnections

当我尝试使用sp_setapprole在SqlConnection上设置应用程序角色时,我有时会在Windows事件日志中收到以下错误… 连接已被删除,因为打开它的主体随后假定了一个新的安全上下文,然后尝试在其模拟的安全上下文下重置连接。 不支持此方案。 请参阅联机丛书中的“模拟概述”。) …并在我的应用程序中抛出匹配的exception。 这些是池连接,有一段时间连接池与app角色不兼容 – 事实上,Microsoft的旧建议是禁用连接池 (!!)但是随着sp_unsetapprole的引入,它现在(理论上)可以在将连接返回池之前清理连接。 我相信这些错误发生在(由于未知原因)sp_unsetapprole在连接关闭并返回到连接池之前未在连接上运行时。 然后,当从池返回此连接时,sp_approle注定要失败。 我可以捕获并处理此exception,但我更愿意检测即将发生的故障并完全避免exception(以及事件日志中的消息)。 是否有可能在不引起exception的情况下检测问题? 欢迎提出想法或建议。