运行应用程序时,我无法让我的网络应用程序连接到数据库。我可以在SQL Server对象资源管理器中连接,并从连接属性中获取连接字符串
这是我的连接字符串:
<add name="Quotes.DAL.QuotesConnection"
connectionString="Data Source=(localdb)\v11.0;Initial Catalog=TestDB;Integrated Security=False;User ID=sa;Password=***;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False"
providerName="System.Data.SqlClient" />
我可以SA
连接,我可以创建它在Management Studio中指向的数据库。当我的应用程序尝试通过Entity Framework进行连接时,出现以下错误:
System.Data.SqlClient.SqlException(0x80131904):登录失败。登录来自不受信任的域,不能与Windows身份验证一起使用。在System.Data.ProviderBase.DbConnectionPool.TryGetConnection(DbConnection owningObject,
我将Windows 7作为家庭开发机器运行,因此没有Active Directory。
有人可以解释为什么会发生这种情况吗?
我发现这可能是因为我在另一个程序集中有Entity Framework。我创建了一个新的Web应用程序,其连接字符串可用。当它在我的DAL中尝试相同的连接字符串时,它会因同样的错误而失败!
由于
答案 0 :(得分:1)
可能是因为设置我在使用sql设置连接字符串时通常只使用最小Integrated Security=False
,我从未将其设置为false。Server=myServerAddress;Database=myDataBase;User Id=myUsername;
Password=myPassword;
身份验证,只根据需要添加内容。
我看到的另一个问题是使用SA连接到数据库。这打破了本书中几乎所有最佳实践,我建议您在推出该程序时创建一个特定于应用程序的密码。原因是服务器的 GOD ACCESS 帐户将在app.config文件中以明文形式显示其密码。请记住一些事情。
编辑:经过一些评论讨论后,连接字符串位于错误的配置文件中。