我正在Visual Studio 2013中开发一个Web应用程序,并从外部服务器获取数据。出于这个原因,我在浏览器中禁用了Web安全性,并在我的应用程序中定义了绝对URL。现在每当我部署应用程序时,我都必须采用URL(这当然是第一次忘记了),而且我还必须解释设置为evey中的新人。
在与web.config文件略有不同之后,我尝试设置一些规则,将这个URL重新编写到数据网络服务器,但是失败了。
我所有的相对网址都以相同的标识符开头,应该映射到外部服务器。这就是我到目前为止所做的:
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
<system.webServer>
<rewrite>
<rules>
<rule name="Rewrite calls to rest.oms to the actuall webserver">
<match url="^/IDENTFIER/([_0-9a-z-]+)" />
<action type="Rewrite" url="http://EXTERNAL_SERVER/IDENTFIER/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
然而,到目前为止它还没有奏效。请有人帮帮我。
最诚挚的问候, 斯蒂芬
答案 0 :(得分:1)
如果您有ARR模块,可以从外部URL重写。
1)您需要为IIS安装ARR module
2)在IIS管理器中,您应启用反向代理
2.1)在服务器节点上单击&#34;应用程序请求路由缓存&#34;
2.2)点击&#34;服务器代理设置&#34;然后单击&#34;启用代理&#34;,然后&#34;应用&#34;
3)稍微修复你的重写规则regexp(删除起始斜杠):
<rule name="Rewrite calls to rest.oms to the actuall webserver">
<match url="^IDENTFIER/([_0-9a-z-]+)" />
<action type="Rewrite" url="http://EXTERNAL_SERVER/IDENTFIER/{R:1}" />
</rule>
然后你的规则应该有效。