IIS负载平衡的站点redirect到外部服务,但应该返回到正确的服务器

我们正在为面向外部和内部的Web服务器实施一对networking负载平衡器。 我们不打算在NLB上使用会话状态服务,并且接受如果节点closures,用户将不得不在新的服务器上重新进行身份validation,并开始一个新的会话。

我们有一个ASP.Net4应用程序,然后redirect到外部服务(付款处理器),然后使用静态configuration的链接将用户返回到我们面向外部的URL。

我有两个问题:

对于问题#1您可以使用NLBS亲和力设置。 请参阅https://stackoverflow.com/questions/866108/how-to-keep-user-requests-on-the-same-server-when-using-iis-nlb

对于问题#2,有几个选项

  1. 使用拆分的DNS设置。 基本上你从外部DNS设置intneral DNS分离。 内部客户端将使用intneral DNS并指向NLBS IP,外部客户端将使用外部DNS并指向外部NLBS IP。
  2. 您的付款处理供应商可能会以编程方式支持更改返回url。 我们使用PayPal Payflow Pro产品。 它允许我们以编程方式设置返回URL。 如果您的供应商支持此选项,那么您可以使用ASP.NET来检测请求者的地址是否是内部的,并将它们指向正确的URL。 您可以使用以下任一属性来获取请求者的IP地址

    HttpContext.Current.Request.UserHostAddress;
    要么
    HttpContext.Current.Request.ServerVariables [ “REMOTE_ADDR”];