SqlDependency.启动为文件附加自动命名数据库的尝试失败

本文关键字:数据库 失败 启动 文件 SqlDependency | 更新日期: 2023-09-27 18:09:47

iv'e获得了NORTHWND.mdf和NORTHWND的副本。登录我的App_Data文件夹

我的连接字符串:

   <add name="northwind_connection" connectionString="Data Source=.'SQLEXPRESS;AttachDbFileName=|DataDirectory|NORTHWND.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />

当我尝试打开和关闭连接时,一切都很好。

  string connStr = WebConfigurationManager.ConnectionStrings["northwind_connection"].ToString();            
  SqlConnection conn = new SqlConnection(connStr);            
  SqlCommand command = new SqlCommand("Select * From Products");
  command.Connection = conn;                
  conn.Open();
  SqlDataReader reader = command.ExecuteReader();            
  GridView1.DataSource = reader;
  GridView1.DataBind();
  conn.Close();

现在,在这段代码旁边,我想将SqlCacheDependency添加到页面中当我放置代码时:显示在msdn 中

     SqlDependency.Start(connStr);

我得到以下错误:

为C:''Program Files(x86(''Common Files''Microsoft Shared''DevServer''10.0''NORTHWND.mdf文件附加自动命名数据库的尝试失败。存在具有相同名称的数据库,或者指定的文件无法打开,或者它位于UNC共享上。

为什么会发生这种情况,我需要配置什么才能使SqlCacheDependency工作。

提前感谢eran。

此外,如果我将连接字符串更改为特定的,我想添加一个

  <add name="northwind_connection" connectionString="Data Source=.'SQLEXPRESS;AttachDbFilename=C:'Program Files'Microsoft SQL Server'MSSQL10_50.SQLEXPRESS'MSSQL'DATA'NORTHWND.MDF; Integrated Security=True" providerName="System.Data.SqlClient" />

一切正常,但这似乎是错误的,因为我不希望用户将连接字符串更改为他们的路径,这就是为什么我想将其放入App_Data或列表中给出的相对路径。''SQLEXPRESS也不起作用:

  <add name="myConnection"  connectionString="Data Source=.'SQLEXPRESS;Initial Catalog=NORTHWND;Integrated Security=True;" providerName="System.Data.SqlClient"/>

请阐明这个问题,必须有一些配置才能实现这一点。提前谢谢。eran。

SqlDependency.启动为文件附加自动命名数据库的尝试失败

我认为不能将SqlCacheDependencyauto-attach (SQLEXPRESS)类型的连接字符串一起使用。

您需要在Management studio中附加数据库,并将连接字符串更改为:

server=(local);database=Northwind;Integrated Security=SSPI;

然后你需要执行ALTER DATABASE NORTHWIND SET ENABLE_BROKER

如果你需要为用户提供这种设置,那么你可以编写一个SQL脚本来为他们做这件事。