Asp.net mvc ISS Url重写与应用程序请求路由:服务器变量不可用

Asp.net mvc ISS Url重写与应用程序请求路由:服务器变量不可用,asp.net-mvc,url-rewriting,iis-7.5,arr,Asp.net Mvc,Url Rewriting,Iis 7.5,Arr,我已将服务器变量设置为在名为COUNTRY_PATH的IIS服务器上可用 我正在从一个站点到另一个站点进行反向代理重写,需要在代理站点中访问此服务器变量。然而,它似乎从来没有价值 <rule name="Country Codes For DotCom" stopProcessing="true"> <match url="^([A-Z]{2,2})(/)(microsite)(.*)" /> <conditions logicalGrouping

我已将服务器变量设置为在名为COUNTRY_PATH的IIS服务器上可用

我正在从一个站点到另一个站点进行反向代理重写,需要在代理站点中访问此服务器变量。然而,它似乎从来没有价值

<rule name="Country Codes For DotCom" stopProcessing="true">
    <match url="^([A-Z]{2,2})(/)(microsite)(.*)" />
     <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
          <add input="{HTTP_HOST}" pattern="\.com$" />
     </conditions>
     <serverVariables>
          <set name="COUNTRY_PATH" value="{R:1}{R:2}{R:3}" />
     </serverVariables>
     <action type="Rewrite" url="http://internal.example.com/{R:1}{R:2}{R:3}{R:4}" />
</rule>

有人能指出我做错了什么吗?

当您将服务器变量添加到允许的服务器变量中以及在“重写服务器变量”元素中引用它时,您需要在服务器变量前面加上“HTTP_u”。确认正确操作的一种简单方法是使用内置的键入功能,输入{H,然后从可用选项中选择{HTTP_COUNTRY_PATH}

要获得完整的解释,请阅读以下文章的以下部分:使用入站重写规则设置请求头和服务器变量


谢谢,但我不认为是这样。我以前使用过不带HTTP前缀的服务器变量。正如在IIS.net上的这篇文章中所讨论的,他们在文章中设置了一个名为ORIGINAL_URI的服务器变量:如果内存服务正确,那正是我为firs创建新服务器变量时在后面咬我的那篇文章t时间。我发帖时正在手机上,现在我添加了一个参考以支持我的回答。另一条评论:如果你还没有使用它,如果你的朋友请求跟踪失败。另一个用户在实现重写提供程序时遇到类似问题:
string countryPath = HttpContext.Current.Request.ServerVariables["COUNTRY_PATH"]