我正在尝试使用SqlDependency
来创建示例SignalR应用程序。我正在使用具有sysadmin角色的SQL管理员帐户。我正在编写以下代码:
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Notification = null;
DataTable dt = new DataTable();
SqlDependency dependency = new SqlDependency(command);
SqlDependency.Start(connection.ConnectionString);
//dependency.OnChange += dependency_OnChange;
if (connection.State == ConnectionState.Closed)
connection.Open();
var reader = command.ExecuteReader();
}
问题是当执行以下行时,
SqlDependency.Start(connection.ConnectionString);
我收到错误:
用户登录失败'
相同的代码工作正常,当我评论它并正常加载数据(没有依赖)。我也可以使用这些凭据登录管理工作室帐户。
答案 0 :(得分:0)
问题出在你的ConnectionString中。它位于您的web.config文件中,可能包含以下内容:
<connectionStrings>
<add name="ConnectionStringName" connectionString="Data Source=YourSqlServerName;Initial Catalog=YourDataBaseName;User ID=sa;Password=YourPassword" providerName="System.Data.SqlClient"/>
</connectionStrings>
收到此错误后,我认为您使用SQL Server身份验证,因为对于Windows身份验证,您不必指定用户ID并通过。所以我建议你打开Managment Studio并尝试连接ConnectionString中的设置:服务器名称,登录 - 在你的情况下&#34; sa&#34;和密码。可能是您的用户/密码存在问题。
答案 1 :(得分:0)
原因是初始化连接后Connection对象丢失了密码。添加Yourconnectionsting.PersistSecurityInfo = True