将ASP.Net MVC主页重写为另一个IP地址

时间:2016-07-26 16:14:35

标签: asp.net asp.net-mvc url-rewriting iis-8

我一直在尝试将我的主页重写为ASP.Net MVC应用程序中的另一个IP地址。我在IIS中安装了URL Rewrite和Application Request Routing模块。我已经在我的web.config中设置了重写,当我将动作类型更改为重定向时,它完美地运行,但是一旦我将其更改为重写它就完全不起作用。 我已经更改了匹配的网址以接受所有请求,但它仍然无效。

<system.webServer>
        <rewrite>
        <rules>
        <clear />
         <rule name="node" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
           <match url="*" />
           <action type="Rewrite" url="http://255.255.255.255/" />
         </rule>
       </rules>
     </rewrite>
  </system.webServer>

似乎重写过程与路由有一些冲突。我如何才能使重写的优先级更高?

3 个答案:

答案 0 :(得分:1)

<rewrite>部分中的URL重写模块的配置适用于内部URL,不能重写服务器的域或IP:

  

IIS.NET:重写操作用替换替换当前的URL字符串   串。替换字符串必须始终指定URL路径(for   例如,contoso / test / default.aspx)。

你问的不是网址重写,而是反向代理。如果您可以访问IIS,则可以尝试使用reverse proxy configuration,或者只是创建一个类似于此example的HttpHandler。下一个选项可以是http://urlrewriter.codeplex.com

答案 1 :(得分:1)

首先,您必须配置仅包含一个服务器的Application Request Routing Server Farm(您应该为此服务器指定IP)。之后,您需要按照here所述配置全局URL重写规则。

答案 2 :(得分:0)

是否会发生配置继承? 如果是这样,您可以使用&lt; location&gt;包装所需的部分。禁用父应用程序的继承...

<location path="." inheritInChildApplications="false">
  <system.webServer>
    ...
  </system.webServer>
</location>