0

我正在 Visual Studio 2013 中开发一个 Web 应用程序,并从外部服务器获取我的数据。出于这个原因,我在浏览器中禁用了网络安全,并在我的应用程序中定义了绝对 URL。现在,每当我部署应用程序时,我都必须采用 URL(当然第一次会被遗忘),而且我必须向项目中的每个新人解释设置。

在对 web.config 文件有点熟悉之后,我尝试设置一些规则,将这个 url 重新写入数据网络服务器,但失败了。

我所有的相对 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>

但是,到目前为止它还没有工作。有人可以帮我吗。

最好的问候,斯特凡

4

1 回答 1

1

如果您有 ARR 模块,则可以从外部 url 重写。

1)您需要为您的 IIS安装ARR 模块

2) 在 IIS 管理器中,您应该启用反向代理

2.1)在服务器节点上单击“应用程序请求路由缓存”

2.2) 点击“服务器代理设置”,点击“启用代理”,然后点击“应用”

3)稍微修复你的重写规则正则表达式(删除起始斜杠):

<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>

那么你的规则应该有效。

于 2017-08-05T08:27:11.157 回答