IIS 上具有 Windows 身份验证的 SQL Server SMO
当我在 IIS 上启用 Windows 身份验证并尝试运行一些数据库更新脚本时,出现奇怪的错误:
模拟无效令牌 - it 无法复制。
我没有启用任何显式模拟。
我已将其范围缩小到与 SMO 有关,因为当我更改为普通的 SqlClient
并使用 ExecuteNonQuery
时,问题就消失了。遗憾的是,这不是一个长期解决方案,因为更新脚本必须能够包含标准 SqlClient
无法识别的“GO”关键字。
I'm getting a strange error when I enable windows authentication on IIS and try to run some database update scripts:
Invalid token for impersonation - it
cannot be duplicated.
I have not enabled any explicit impersonation.
I have narrowed it down to being something to do with SMO as when I change to a normal SqlClient
and use ExecuteNonQuery
, the problem goes away. This unfortunately is not a long term solution as the update scripts must be able to contain the 'GO' keyword which is not recognized by the standard SqlClient
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
IIS 工作进程以某个用户身份运行。当您使用 Windows 身份验证时,您会隐式模拟该用户。
如果您的 SQL 服务器位于不同的主机上,这可能还不够好。我认为模拟用户只能访问本地资源。
http://msdn.microsoft.com/en-us/library/ff647405 .aspx#paght000025_usingimpersonation
SQL Server 是否使用 Windows 身份验证?
IIS worker processes are running as some user. When you use windows authentication, you are implicitly doing impersonation to the that user.
If your SQL server is on a different host, this probably isn't good enough. The impersonated user I think can only access local resources.
http://msdn.microsoft.com/en-us/library/ff647405.aspx#paght000025_usingimpersonation
Is SQL Server using windows authentication?