问题标签 [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 投票
0 回答
396 浏览

iis - 应用程序请求路由客户端亲和服务器哈希

是否可以通过代码计算 ARR 亲和服务器哈希?我想根据自定义托管 HTTP 模块中实现的复杂规则手动设置客户端关联 cookie。我现在唯一的障碍是如何获取网络场中的所有服务器哈希。先感谢您!

0 投票
0 回答
320 浏览

signalr - SignalR ServerSentEvents 在 ARR 中表现异常

在我的应用程序中,SignalR 的一切都很好,直到我配置 ARR,在 ServerSentEvents 协议没有连接并显示超时错误之后,我用谷歌搜索它,然后我找到了在 ARR 中将“响应缓冲区阈值”设置为 0 的解决方案。

在那之后 ServerSentEvents 连接但在超时 2 到 3 次之后,我尝试了很多来弄清楚但无法理解为什么它第一次没有连接,我的另一个问题是当服务器向客户端推送消息时它客户端接收大约需要 3 到 5 秒,但是当我同时从服务器推送更多消息时,客户端会立即收到所有消息,但最后一条消息再次需要 3 到 5 秒,我不知道信号器是否有一些用于serversentevent或类似的排队机制,

所有这些问题都是在配置 ARR 之后

因此,任何帮助都是不言而喻的

0 投票
1 回答
614 浏览

google-chrome - TFS Team Room SignalR 在 Chrome 中被禁止

  • TFS 2013
  • 视窗服务器 2012
  • IIS 8.5
  • 应用程序请求路由 (ARR)

我正在使用 ARR 作为反向代理,将对该服务器上 URL 的任何请求重新路由到我在该服务器上为 TFS 设置的 IP 地址。

一切都很好,除了在 Chrome 中(不要经常这么说)。

在浏览我的 TFS 安装的 Web 版本并访问“Team Room”时,我在 Chrome 控制台中收到 SignalR 错误:

403(禁止:SignalR 跨域已禁用。)

FF 和 IE 中的相同链接可以正常工作。此外,如果我直接通过 TFS IP 地址(绕过 ARR)访问 Team Room 链接,它工作正常。

我尝试了很多不同的方法来解决这个问题。

将此标头添加到 TFS 的 web.config

在 JavaScript 中设置 SignalR 连接的连接 URL 并使用 JSONP,如下所示:

我什至尝试了另一种我在网上找到的方法,它禁用了 ARR 上的缓存。

那里的许多解决方案都说我应该在服务器上启用 SignalR 的跨域请求,但是由于这是用于 TFS 安装,所以我没有修改 TFS 二进制文件的自由(据我所知)而且我是'无法通过查看 SignalR API 找到在客户端上执行此操作的方法。

对于这个问题,我遇到的唯一其他答案是 Chrome 被窃听并且不使用它(这是不可取的)。

有人知道我如何使用 Chrome 访问 TFS 团队会议室功能吗?

0 投票
0 回答
731 浏览

apache - Apache & IIS 7.5 作为反向代理不正确的响应标头值

在 Windows 2008 R2 IIS 7.5 上,ARR 和 URL 重写在端口 80 上运行 在同一台服务器上,端口 10000 上的 Apache 正在运行(设计上没有采用 8080)。IIS 将所有正在进行的查询 / cp1 转发到 Apache(反向代理)。

在 Apache 上运行许多 Ajax 请求到数据库。如果此类请求超过 5 秒,我会从 IIS 收到以下消息:

响应标头现在向我指示如下:

问题在 Keep-Alive 标题 5 秒中说明。根据 web.config 但 1 分钟设置为超时:

在 ARR 缓存设置中输入值为 120 秒。

0 投票
0 回答
5336 浏览

caching - 应用程序请求路由和禁用缓存

我们有一个多租户 Web 应用程序。我最近在我们的生产环境中创建了几个空白网站,它们使用 IIS 7.5 和 ARR 3.0(应用程序请求路由)充当反向代理

这个想法是这样的:

(A) www.product.com -> 改写为 -> www1.product.com

(B)reports.product.com -> 重写为 -> reports1.product.com

  • 我启用了两个代理网站并禁用了磁盘缓存。
  • 内存缓存持续时间默认为 60。
  • 查询字符串支持是“忽略查询字符串”
  • 网站 A 代理的入站重写规则从模式 (.*) 到http://www1.product.com/ {R:1}
  • 网站 B 代理上的入站重写规则从模式 (.*) 到http://reports1.product.com/ {R:1}

部署时,我意识到 www.product.com 的行为符合预期,但 reports.product.com 突然返回跨租户的缓存响应,我很快将其关闭。

我在reports.product.com 上的代理服务器上检查了IIS 日志,所有查询字符串都有X-ARR-CACHE-HIT=0,它告诉我ARR 没有缓存,但它必须有。(没有一个条目的值为 1)

我的问题是:

  1. 我知道我搞砸了,忘记将内存缓存持续时间设置为 0,但是将内存缓存持续时间设置为 0 是否会完全禁用代理服务器上的缓存?我根本不希望进行任何缓存。
  2. 设置“查询字符串支持”是否仅与磁盘缓存相关?或者它是否也会影响 ARR 的内存缓存?
  3. 为什么没有禁用内存缓存的选项?
  4. 为什么我只在一个网站上体验?网站 A 和 B 的代理设置相同(网站 B 的 sessionState=InProc,但只有一个实例,没有服务器场)

提前致谢,

0 投票
1 回答
391 浏览

iis - IIS ARR 规则。匹配所有但

我在 IIS 中获得了虚拟主机:

我想将此 URL 重定向到 tomcat 应用程序http://localhost:8081/one

但我不想重定向网址

http://sampleserver.org/twohttp://localhost:8081/one/two

所以我的规则是这样的:

我想重定向^two除 tomcat 之外的所有内容。

这是不可能的还是我错过了什么?

0 投票
1 回答
1270 浏览

iis - Azure 网站上的 ARR 反向代理删除 WebSockets 响应标头“Sec-WebSocket-Accept”

我正在尝试在 Azure 网站内设置 ARR。我在 Azure VM 上有一个有效的实现,但想移动到一个网站,这样我就不必主动管理 VM。

我遇到的问题特定于通过我的 ARR 反向代理的 SignalR WebSockets 连接请求和响应。

通过 IIS 请求跟踪通过 ARR 之前服务器上的响应:

客户看到的响应:

如您所见,Sec-WebSocket-Accept标头已从响应中删除。这意味着客户端连接失败并默认使用长轮询而不是 websockets 协议。

知道为什么要删除此标头吗?正在使用具有本机 websockets 支持的 ARR 3.0,并且在 Azure 网站配置面板中启用了 websockets。

0 投票
1 回答
898 浏览

windows-authentication - IIS Arr 未在同一服务器上传递 Windows 凭据

我在测试环境中有一个自托管的 o​​win web api 服务,为了给它一个更好的名称,我使用了域别名和 ARR。

我的 web api 在端口 8888 上运行,并使用 Windows 身份验证。我已将我的 arr 配置为在testserver:80匿名身份验证下运行。我想在盒子上部署一个服务,将 webapi 用于数据。当我尝试testserver从桌面上的网络浏览器访问时,它工作正常。但是,当我远程进入该框并尝试点击testserver它时,会提示我输入凭据。即使我输入正确,它仍然会向我发出 401。如果我去localhost:8888该站点将工作。

因为,我更喜欢在我的服务中使用漂亮的服务器名称,我该如何纠正这个问题。如何让它通过 ARR 在同一个盒子上传递凭据?

0 投票
1 回答
2413 浏览

iis - 将静态内容重写到 IIS 中的不同域

我在 ASP.NET 上有一个本地网站。而且我需要将一些静态内容(从文件夹“静态”)代理到另一个网站。

我添加了这条规则:

但这不起作用 - 基于失败的请求日志,我的路由匹配(PATTERN_MATCH 步骤匹配“true”,然后我在 REWRITE_ACTION 和 RULE_EVALUATION_END 中看到正确的 url)但我看到 ASP.NET 在此之后继续评估其他模块等等试图自己提供内容,点击静态文件处理程序并获得 404(因为磁盘上没有这样的文件)。

我确实可以访问重写的文件(在浏览器中打开的http://otherwebSite.com/static/stylesheet.css等文件没有任何问题)。还写一些其他别名(在 etc/hosts 中)并打开http://otherwebSiteLocalAlias.com/static/stylesheet.css也可以(这意味着该网站没有一些主机/代理验证机制)。

将操作更改为“重定向”也可以,但在我的情况下这是不可接受的。

我有另一条规则将非静态资源(文件夹 url,如 /mypage/)代理到同一主机并且它可以工作。它只是不适用于静态文件 - 似乎在 url 重写完成后它的工作正常,请求继续由 asp.net 处理,这不应该是这种情况。

0 投票
1 回答
583 浏览

http - 带有 ARR 的 IIS:根据肥皂内容将肥皂消息路由到不同的服务器

我想根据消息内容将 SOAP 消息路由到不同的服务器。

我尝试了应用程序请求路由 (ARR),但似乎只能通过服务器变量和 HTTP 标头进行路由。

我找到了这个教程: Developing a Custom Rewrite Provider for URL Rewrite Module

我的问题是,我可以根据 HTTP 正文使用自定义 ReplaceProvider ( IRewriteProvider, IProviderDescriptor) 进行路由吗?