【问题标题】:Connection string USING Application Intent errors连接字符串 USING Application Intent 错误
【发布时间】:2014-01-17 16:05:25
【问题描述】:

尝试创建针对 SQL Server 2012 高可用性组的“只读”意图连接字符串,遵循 this article,我得到:

System.ArgumentException:不支持关键字:'应用程序 意图'。在 System.Data.Common.DbConnectionOptions.ParseInternal(哈希表 可解析,字符串连接字符串,布尔构建链,哈希表 同义词,布尔 firstKey)

这是在 Windows 7 Pro 机器上,违背基于 SQL Server 2012 的高可用性组(已确认可使用“-ReadOnly”参数)。

有两篇关于引入“应用程序意图”的修补程序的 MS 知识库文章,但它们适用于框架版本 3.54我没有为 4.5 找到任何东西,所以我认为包含支持4.5SQL Server Native Client 都应该支持开箱即用。

我们使用的是 4.5。

这是连接字符串:

Data Source=HAListener;Initial Catalog=*********;User ID=************;Password=********; Application Intent=ReadOnly

有人遇到过这个错误吗?

已解决 Application Intent 中不应有任何空格:

ApplicationIntent=ReadOnly

【问题讨论】:

  • 不确定但我之前使用的是 (Info=False;Mode=Read) 而不是 (Application Intent=ReadOnly) 如果有帮助,请尝试一下...:)
  • 您需要确保已安装所有更新。您正在使用的某些组件的 RTM 版本不理解该连接字符串属性。
  • @Ikiet,它出错了,但即使它有效,它也可能不会触发我们在 HA 侦听器上针对的行为 - 即“负载平衡”连接到可读副本,不同于主副本。仅供参考,错误是ERROR: System.ArgumentException: Keyword not supported: 'info'.
  • 首先,向我们展示您的实际代码。

标签: sql-server sql-server-2012 connection-string high-availability


【解决方案1】:

我想我会发布解决方案以防其他人遇到同样的问题:

Application 和 Intent 之间没有空格。正确的参数是:

ApplicationIntent=ReadOnly

(参考:MSDN

【讨论】:

    【解决方案2】:

    根据您使用的 SNAC 协议,应用程序意图连接字符串属性略有不同。

    使用 SQL Native Access Client SQL OLE DB 时,应使用空格指定应用程序意图连接字符串:'Application Intent'

    使用 SQLClient 或 ODBC 连接时,请指定“ApplicationIntent”且不带空格

    【讨论】:

      猜你喜欢
      • 2011-08-17
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多