集成安全性的实体框架SQL连接问题
一方面,我有一个Windows服务,它使用实体框架连接到SQL Server实例并在那里使用数据库。
另一方面,我有一个基于WIX的安装程序,它具有基于引导程序的基于.NET的GUI,用户可以在其中输入连接详细信息以供服务在连接字符串中使用。 在此安装程序GUI中,我还对用户提供的数据执行检查,并检查数据库连接(使用SqlConnection.Open(),甚至创建/删除数据库)。
此问题出现在工作组环境中,不存在域控制器,并且用户选择集成安全性作为选项。 引导程序应用程序成功连接到SQL服务器并对其执行一些操作,但随后Windows服务无法使用集成安全性连接到SQL服务器。 如果我通过将其更改为用户和密码认证进行跟进,则该服务将正常工作。
如果服务失败或者相反,有没有办法让引导程序失败连接?
谢谢。
最可能的原因是服务运行的用户和安装程序运行的用户不同。
如果运行安装程序的用户可以通过Windows身份验证访问SQL Server,则连接将会成功。 然后,如果服务在不同帐户下运行(Say LocalSystem),则服务在其下运行的用户无权使用集成安全性。
解决方法是使用在服务器上具有权限的服务帐户或使用SQL身份验证。
我最近在部署服务时遇到了这个问题。 唯一能够使引导程序连接失败的方法是将其作为服务将在其下运行的帐户来运行(模拟是实现此目的的一种方法),否则无法正确测试连接。
由于您提到了工作组并且没有提供域控制器,因此可能会通过用户名和密码进行一些操作。 在我工作的一个地方,在其中一个SQL框中(不在域中),每个开发人员都有一个本地windows帐户,其密码与他们的域帐户相同。 这允许通过身份验证(由于用户名和密码匹配)和对SQL Server的访问。 这可能是怎么回事。
链接地址: http://www.djcxy.com/p/74077.html上一篇: Entity Framework SQL Connection issues with Integrated Security