我创建了一个webpart,它在我开发它的虚拟机上运行得很棒。
但是当我尝试在我的物理机上运行相同的webpart时,我无法打开SQL连接,因为网络上的SQL Server是Seperate框。
My Physical,Virtual和SQL Box在同一个网络上,但出于某种原因,它在我的物理机上不起作用,
它提出以下消息:用户'NT AUTHORITY \ ANONYMOUS LOGON'登录失败
导致此问题的原因是什么?
答案 0 :(得分:2)
您正在使用Intgrated Security,这意味着当前用户用于对数据库服务进行身份验证。在生产服务器上,使用匿名用户执行webpart代码。并且(当然)此用户无权访问其他Web服务器文件的任何资源。
要避免此行为,请使用使用SQL-Server安全性的专用帐户。请参阅此示例连接字符串:
connectionString="Data Source=SERVERHOSTNAME;Initial Catalog=YOURDATABASE;Persist Security Info=True;User ID=YOURUSER;Password=YOURPASSWORD";
确保从生产数据库管理员那里获得具有适当权限的数据库的有效登录(例如db_reader)。
答案 1 :(得分:1)
您指定了User Id
和Password
,然后将Trusted_Connection
设置为True
,因此我猜使用了集成身份验证 - 删除Trusted_Connection=True
部分。< / p>