在开发环境中运行Service Fabric群集时连接到本地SQL Server实例

The*_*Man 11 azure-service-fabric

在传统的控制台应用程序中打开到本地数据库的SQL连接时,我没有任何问题,但是当我尝试在Service Fabric中运行的无状态服务中执行相同的操作时,我收到登录错误.

我收到的错误是 "Login failed for user 'WORKGROUP\\NICK$'."

这是我用来连接的代码

using (var con = new SqlConnection("Server=.;Trusted_Connection=True;Database=AddressBook"))
{
            try
            {
                con.Open();
            }
            catch (Exception e)
            {

            }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试将该用户添加到sql server时,它告诉我无法找到该用户.

The*_*Man 16

基于上述评论,我了解到Service Fabric正在NETWORK SERVICE帐户下运行.

解决方案是更新要在SF群集中访问的数据库的用户映射和角色成员身份.

在SSMS中展开Security,Logins,右键单击NETWORK SERVICE,然后选择属性.在"用户映射"下,在每个数据库旁边放置一个复选框,您希望在其下方公开访问权限public,db_datareader/writer.

在此输入图像描述

  • 或者,您可以将服务配置为以可访问您的数据库的其他用户帐户身份运行:https://azure.microsoft.com/en-us/documentation/articles/service-fabric-application-runas-security/#适用-runaspolicy到服务 (2认同)