C# AmazonEC2多台服务器共享会话状态

C# AmazonEC2多台服务器共享会话状态,c#,asp.net,.net-2.0,C#,Asp.net,.net 2.0,我有一堆EC2服务器是负载平衡的。 一些服务器没有共享会话,用户不断登录和注销 如何使所有服务器共享一个会话, 甚至可能使用分区解析器解决方案 public class PartitionResolver : System.Web.IPartitionResolver { private String[] partitions; public void Initialize() { // create th

我有一堆EC2服务器是负载平衡的。 一些服务器没有共享会话,用户不断登录和注销

如何使所有服务器共享一个会话, 甚至可能使用分区解析器解决方案

    public class PartitionResolver : System.Web.IPartitionResolver
    {
        private String[] partitions;

        public void Initialize()
        {
            // create the partition connection string table
            //                           web1,            web2
            partitions = new String[] { "192.168.1.1" };
        }

        public String ResolvePartition(Object key)
        {
            String oHost = System.Web.HttpContext.Current.Request.Url.Host.ToLower().Trim();

            if (oHost.StartsWith("10.0.0") || oHost.Equals("localhost"))
                return "tcpip=127.0.0.1:42424";

            String sid = (String)key;

            // hash the incoming session ID into
            // one of the available partitions
            Int32 partitionID = Math.Abs(sid.GetHashCode()) % partitions.Length;

            return ("tcpip=" + partitions[partitionID] + ":42424");
        }
    }

-您可以尝试使用sql server存储会话数据。这并不是最有效的,但是当你考虑到不同种类的EC2实例时,它可以更好地为你工作。