【问题标题】:How to change sqlConnectionString for sessionState in SQLServer mode at runtime?如何在运行时更改 SQLServer 模式下 sessionState 的 sqlConnectionString?
【发布时间】:2011-04-19 10:55:00
【问题描述】:

我们正在尝试找到一种在运行时更改 sessionState 的 sqlConnectionString(在 SQLServer 模式下)的方法。我们正在为我们的 SQL 服务器实现故障转移,我们希望在 sessionState 无法访问我的 SQL 服务器时捕获并告诉它故障转移到我的辅助服务器并同时初始化站点范围的故障转移。

如果我不清楚,请随时向我询问更多详细信息。 (顺便说一句,我们使用的是 C#)

编辑:可以肯定的是,我说的是 sessionState 而不是常规的 sql server 连接,请参阅http://msdn.microsoft.com/en-us/library/h6bb9cz9(vs.71).aspx

我当前的 web.config 是这样构建的:

<configuration>
    [...]   
<system.web>
    [...]
    <sessionState mode="SQLServer" timeout="525600" sqlConnectionString="Data Source=localhost\SQLEXPRESS;User ID=myUser;password=myPassword" cookieless="false"/>
</system.web>
[...]
</configuration>

希望这会有所帮助。

【问题讨论】:

  • 解决方案是使用 PartitionResolver : System.Web.IPartitionResolver 和公共方法 public string ResolvePartition(object key),它将返回适当的连接字符串。

标签: c# .net sql-server session-state failover


【解决方案1】:

根据我正在阅读的[here],您可以创建一个partitionResolverType,以便在运行时控制连接字符串。我还没有验证它,但我目前正在寻找对连接字符串的相同控制,这看起来可以解决问题。

【讨论】:

    【解决方案2】:

    根据您管理连接的方式,您可以在 SQL Server 连接字符串中指定镜像服务器的故障转移伙伴:

    Data Source=myServerAddress;
    Failover Partner=myMirrorServerAddress;
    Initial Catalog=myDataBase;
    Integrated Security=True;
    

    (来自here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-31
      • 1970-01-01
      • 2011-07-30
      • 1970-01-01
      相关资源
      最近更新 更多