当我在IIS上启用Windows身份验证并尝试运行某些数据库更新脚本时,我收到一个奇怪的错误:
模仿的令牌无效 - 它 不能重复。
我没有启用任何明确的模拟。
我已将其缩小为与SMO有关,因为当我更改为正常SqlClient
并使用ExecuteNonQuery
时,问题就会消失。遗憾的是,这不是长期解决方案,因为更新脚本必须能够包含标准SqlClient
无法识别的“GO”关键字。
答案 0 :(得分:0)
IIS工作进程正在以某个用户身份运行。使用Windows身份验证时,您隐式向该用户进行模拟。
如果您的SQL服务器位于不同的主机上,这可能不够好。我认为模仿的用户只能访问本地资源。
http://msdn.microsoft.com/en-us/library/ff647405.aspx#paght000025_usingimpersonation
SQL Server是否使用Windows身份验证?