我已经使用 Windows Server 2012 R2 Standard、IIS 8.5 设置了一个 IIS Web 场,并具有以下扩展:Web Farm Framework v1.1 外部缓存 v1.0、URL Rewrite v2、ARR v3。
参考:https://blogs.technet.microsoft.com/erezs_iis_blog/2013/11/27/installing-arr-manually-without-webpi/
URL 重写规则包含在创建 IIS Web 场时自动生成的“*”规则映射。
我尝试访问http://localhost/some_random_name并且该请求由本地 IIS 而不是我的 IIS 网络场处理,并且它返回 HTTP 404。
我打开了 FailedRequestTracing 日志记录,但没有捕获任何日志。我推测这是因为本地 IIS 将请求处理为 HTTP 404,而不是路由到 IIS Web 场。
我该如何排除/调试该问题?
答案1
- 清除你的 URL 重写规则。
- 创建一个处理所有请求的网站。
- 确保该网站可以通过互联网访问。
- 创建一个 URL 重写规则,重写对您的服务器场的所有请求,如下所示。
您已完成。以下是已在我的计算机上运行的示例 URL 重写规则。
<rule name="rule_name" stopProcessing="true">
<match url="(.*)?" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="^(www.)?YOUR_DOMAIN.com(:PORT)?$" />
</conditions>
<serverVariables>
</serverVariables>
<action type="Rewrite" url="http://WEB_FARM_NAME/{R:0}" appendQueryString="true" />
</rule>