问题标签 [arr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5760 浏览

iis - 使用 ARR 和 URL 重写从 IIS 转发 NTLM 凭据

在此先感谢您的帮助。

在我的环境中,我将 IIS 配置为充当反向代理,并将对某些路径的请求转发到另一台主机上的应用程序服务器。为了做到这一点,我使用了应用程序请求路由 (ARR) 和 URL 重写模块,我创建了我的规则并且一切正常。

IIS 负责使用 NTLM 对客户端进行身份验证,所以我的问题是:在对用户进行身份验证后,是否可以将身份验证凭据(至少是用户名)传递给我的应用程序服务器?

我试图这样做,为我的请求添加一个自定义标头,编写如下规则:

但它不起作用:当我在我的应用程序上阅读它时,我的标题总是空的。我也尝试过,但这些都不起作用。

那么,我做错了什么?我应该使用另一个服务器变量吗?我错过了什么吗?

更笼统地说:有可能做我想做的事吗?

再次,提前感谢您的帮助,如果我问一些明显的问题,但我是使用 IIS 的新手,我找不到任何对我有帮助的东西,请原谅我。

0 投票
0 回答
1487 浏览

web-services - 返回 JSON 时的 ARR/IIS 502 错误

这是我们当前的设置:(假设一切都使用 https)

  • 运行仅返回 JSON 的简单 asp.NET Web API 2 应用程序的 Web 服务服务器。(api.example.com/controller/blah)
  • 将包含使用 AJAX 通过我们的 Web 服务访问资源的脚本的主 Web 服务器。

我的最终目标是不必处理 CORS,因为 IE 存在问题。(我已经尝试了几个 jQuery 插件来解决 XDomainRequest 的问题,除了我们的域安全设置导致 IE 无论如何都拒绝请求......这只是一团糟。)

  • 将请求从 www.example.com/api/* 路由到 api.example.com/* 并返回 JSON 响应。

但是,当我尝试使用 IIS + URL 重写 + 应用程序请求路由 (ARR) 进行设置时,我在尝试加载我的 url 时收到以下消息:

502 - Web 服务器在充当网关或代理服务器时收到无效响应。

您要查找的页面有问题,无法显示。当 Web 服务器(作为网关或代理)联系上游内容服务器时,它收到了来自内容服务器的无效响应。

我在 IIS 中的设置如下:

  • 在 ARR 中,我只是勾选了启用代理选项。
  • 在 URL Rewrite 中,我设置了一个规则:
    • 匹配 PRL 模式 = api/*(使用通配符)
    • 动作类型 =重写
    • 重写网址:= api.example.com/{R:1}

我已确保我可以访问 Web 服务,并且从我的 Web 服务器的上下文中正确返回了数据。我已确保正在触发实际的 URL 重写规则并正确转发请求......但在那之后,我被卡住了。有任何想法吗?

0 投票
1 回答
3520 浏览

asp.net - 服务器场中的主机名关联性 - > IIS 8 Web 场上的服务器关联性是什么?

问题是我有 2 个 IIS 服务器作为 Web Farm 工作,目前我们不使用客户端关联或主机名关联。我只需要知道使用主机名关联有什么好处,以及我们何时在服务器和客户端之间使用这种关联。我已经掌握了有关 Client Affinity 的信息,我只需要获取有关 Host Name Affinity 以及何时使用它的更多信息。提前谢谢大家的帮助。

0 投票
3 回答
2499 浏览

asp.net - ASP.NET OAuth 遇到 URL 重写问题

我的生产设置如下:

  • M1 – ASP.NET 网站
  • M2 - IIS URL 重写 2.0 + ARR 3.0

使用 IIS URL 重写,对 M2 的任何请求,例如http:// m2 /app/login.aspx将被重定向到 M1 作为http:// m1 /app/login.aspx

在 M1 上,已经在网站上实现了 ASP.NET Open Auth,以使用 Google 外部身份验证。当用户单击 Google 按钮时,浏览器将被重定向到 Google 登录页面以允许用户进行身份验证。

但是当从 M2 访问该网站时,由 .net oAuth( https://accounts.google.com /[query-string] ) 生成的重定向 url重定向到Google,正在被 URL Rewrite 替换为http:// m2 /[查询字符串]

所以要明确一点;当请求通过外部身份验证提供程序进行身份验证时,将返回302 重定向。通常这种形式可能如下所示:

响应标头:

...

位置:https: //accounts.google.com /o/oauth2/auth?big_long_query_string

...

此重定向由位于代理服务器 (M2 - IIS URL Rewrite 2.0 + ARR 3.0) 后面的服务器 (M1) 创建。所以重写服务器将 Location 头重写为:

响应标头:

...

位置:http:// M1 /o/oauth2/auth?big_long_query_string

...

我们需要的是一个不会在重定向时重写位置 URL 的规则。它也只能针对某些重定向。大多数时候,这里提到的行为都是需要的,因为所有重定向都被重定向到主代理服务器。有人可以为某些重定向提出解决方案或解决方法吗?

0 投票
1 回答
1765 浏览

iis-7.5 - IIS 7.5 和 ARR - 未为图像发送 304 状态代码

我们在 Sitecore 站点前使用 ARR 设置了反向代理。我们仅使用此反向代理来提供站点核心媒体项目。Sitecore 媒体项目正在使用 ARR 正确缓存在磁盘上。

现在我们面临的问题是,对于所有图像,HTTP 状态码始终为 200,因此它们不会缓存在浏览器中。如果我们禁用反向代理,则 HTTP 状态代码为 304,并且浏览器从本地缓存呈现图像。

ARR 不发送 304 状态码有什么原因吗?

更新#1:下面是我们设置的 ARR 规则:

0 投票
1 回答
322 浏览

iis - Microsoft Windows IIS 和 ARR

我在配置 Microsoft Application Request Routing 3.0 (ARR) 时遇到问题,我无法弄清楚为什么无法解决,因此我求助于庞大的 Internet。

情况是我们的 LAN 上有三个 IIS 服务器,每个站点上有一个站点,我需要从 Internet 上提供这些站点。为此,我在 DMZ 中安装了一个带有 IIS 和 ARR 的 Windows 2012 R2 服务器。

我已将以下三个条目添加到公共 DNS 中……所有三个都指向我的防火墙/DMZ

  • public1.company.com
  • public2.company.com
  • public3.company.com

在局域网上,我有以下三个站点

  • srv1.company.local/public
  • srv2.company.local/public
  • srv3.company.local/public

概念是来自互联网的用户应该能够使用“public1.company.com”访问“server1.company.local/public”,但我只有在用户输入“public1.company.com”时才能使其工作/上市”

  • public1.company.com <---> srv1.company.local/public

在 IIS 管理器中使用“URL 重写”我为每个站点创建了一个规则:

  • 匹配网址 | 请求的 URL=匹配模式 | 使用:通配符 | 图案:* | 忽略大小写

  • 条件 | 全部匹配 | 输入:{HTTP_HOST} 匹配模式 | 公共1.* | 忽略大小写

  • 行动 | 路由到服务器场 | 动作属性 | 架构 = http:// | 服务器场 = srv1 | 路径 = /{R:0} | 停止处理

如果我们在从 Internet 访问 LAN 上的服务器时添加“/public”,则此设置有效。

但是...我想摆脱 /public

如果可能的话,谁能解释这是如何完成的?

0 投票
0 回答
454 浏览

iis - IIS ARR - Is it possible forward/stream post request as is without buffering or adding headers

I'm trying to implement WebSocket type of functionality, but using only plain http. So there's a connection over GET that gets data from server, and a connection with POST that sends data to server. Both connections send/receive streaming data, and use content length = 1 GB, type = application octet stream. The two connections remain open till the server sends an "end" command over the GET connection.

Without ARR things work (the back-end server is not IIS).

I added ARR to the setup, did all the configuration steps (including response buffer threshold = 0, max request size = 2GB). Hitting normal urls, submitting forms from browser over ARR works perfectly.

However the POST connection to send data to server does not work. The client sends the data, but the back-end server does not get anything (verified using wireshark). It remains hung for a while, if I terminate the client then ARR failure trace log is generated, and it shows 400 error response, this seems to be because the actual amount of data was not 1 GB in length.

The GET connection works. (If I point the POST connection to directly talk to the back-end server, things work)

So my question is: Is it possible to send streaming data as POST request via ARR? Any suggestions on how to achieve it?

Thanks

0 投票
1 回答
1756 浏览

asp.net-mvc - ISS Url Rewrite with Application Request Routing: Server Variables not available

I have set a server variable to be available on my IIS server called COUNTRY_PATH

I am doing a Reverse Proxy rewrite from one site to another and need to access this server variable in my proxied site. However it never seems to have a value.

Are Server Variables available for reverse proxy?

I am using the following code to get the server variable:

Can anyone suggest what I am doing wrong?

0 投票
1 回答
568 浏览

wcf - 如何让网站 Ping ARR 服务器并说我要宕机了?

我已在 Windows Azure 环境中成功配置 ARR,将 Web 服务器实例添加到服务器场。

使用服务器场中的健康检查选项,超时或无响应的实例会变得不健康。

我的问题是

  1. 而不是 ARR 网络农场(每 10 秒进行一次健康检查)ping 网站,是否有可能或网络角色本身 ping 回 ARR 服务器并说我要关闭?

  2. 是否可以从 Web 角色 ping ARR 服务器并说我要关闭?或者这是有任何可用的最佳方法。

    请建议。

0 投票
1 回答
1400 浏览

iis - 应用程序请求路由:获取原始 URL

在发生反向代理重写后,我试图从我的应用程序 (MVC 5) 中获取原始 URL。

我已经尝试了所有我能找到的东西,例如

  • 将我自己的服务器变量设置为 {HTTP_HOST} 的值(我的服务器变量以 HTTP 开头)。这要么包含当前 URL,要么为 null。
  • 使用不包含主机名的 HTTP_X_ORIGINAL_URL 服务器变量。
  • 查看所有内置的服务器变量。
  • 设置值 preserveHostHeaders 如下所述:https://stackoverflow.com/a/7180527/4950,这导致网站挂起

有任何想法吗?

尝试在 IIS7 和 IIS7.5 上使用 ARR 3.0 和 Url Rewrite 2.0