代码之家  ›  专栏  ›  技术社区  ›  omkar patade

C#-负载均衡器情况下的二维码链接

  •  2
  • omkar patade  · 技术社区  · 6 年前

    以前我们只有一台服务器,运行正常。我们正在生成二维码的URL,如下所示-

     var urlBuilder = new System.UriBuilder(HttpContext.Request.Url.AbsoluteUri)
     {
          Path = Url.Action(actionName, controllerName),
    
          Query = "ID=" + model.abc
      };
    
      return urlBuilder.ToString();
    

    它用于将url返回为“ http://site.internal/Controller/Action "

    这对台式机和移动设备都有效

    现在应用程序的URL已更改-

    E、 G.负载平衡外部URL= https://secure.abc.com

    现在,当我们使用相同的代码生成QR代码的URL时,它将采用服务器URL,即它指向服务器URL( )而不是相对路径/当前URL。


    编辑- 我试着把密码改成

     var urlBuilder = new System.UriBuilder(HttpContext.Request.Url.AbsoluteUri)
     {
          Path = Url.Action(actionName, controllerName),
    
          Query = "ID=" + model.abc
      };
    
     var cleanUrl = urlBuilder.Uri.GetComponents(UriComponents.AbsoluteUri & ~UriComponents.Scheme & ~UriComponents.Host & ~UriComponents.Port,
                               UriFormat.UriEscaped);
    
      return cleanUrl.ToString();   
    

    但它只能在桌面上工作。它在手机上不起作用,因为当我们扫描二维码时手机上没有网址

    1 回复  |  直到 6 年前
        1
  •  0
  •   omkar patade    6 年前

    在做了一些研究之后,我发现唯一的方法是在web.config中保留外部url键,并用外部url键替换绝对uri。

    另一种方法是将该值分配给服务器上的环境变量