我们正在为面向外部和内部的Web服务器实施一对networking负载平衡器。 我们不打算在NLB上使用会话状态服务,并且接受如果节点closures,用户将不得不在新的服务器上重新进行身份validation,并开始一个新的会话。
我们有一个ASP.Net4应用程序,然后redirect到外部服务(付款处理器),然后使用静态configuration的链接将用户返回到我们面向外部的URL。
我有两个问题:
当用户在执行付款后返回站点时,有什么方法可以确保他们连接到他们当前正在使用的服务器?
当面向内部NLB的用户完成付款时,服务将尝试将其返回到外部NLB。 有没有办法拦截并redirect到面向内部的群集,然后将其活动会话所在的服务器?
对于问题#1您可以使用NLBS亲和力设置。 请参阅https://stackoverflow.com/questions/866108/how-to-keep-user-requests-on-the-same-server-when-using-iis-nlb
对于问题#2,有几个选项
HttpContext.Current.Request.UserHostAddress;
要么
HttpContext.Current.Request.ServerVariables [ “REMOTE_ADDR”];