使用asp.net MVC站点进行IIS反向代理

时间:2018-04-17 12:48:14

标签: asp.net url url-rewriting

设定:

-Asp.net MVC网站(siteA),在global.ascx中实现了application_error处理程序,在web.config中只有一个规则(反向代理重写规则)。

-IIS反向代理设置,其中siteA的/子目录指向siteB域。

-IIS重写模块已移至siteA的IIS模块列表顶部。

问题:

反向代理配置适用于除了web.config中的iis重写规则之外的IIS文件夹中没有任何内容的testsiteA。没有其他文件夹,文件等。这个testsiteA工作得很好,因为重写规则可以像目标一样工作。但是,当我将相同的规则应用于真实站点siteA时,有一个asp.net MVC网站托管的重写规则永远不会被处理。而是在global.ascx中到达application_error处理程序,并且不处理URL重写规则的处理。我试过做Response.End(),清除服务器错误,基本'返回'。结束执行的语句,都在application_error处理程序中但没有一个有效。

如何让IIS或asp.net管道将URL重写作为最高优先级?

1 个答案:

答案 0 :(得分:0)

添加一些日志记录后(我无法在调试模式下调用错误处理程序),我发现我们的控制器IoC无法解析子目录路径(我也将其从磁盘中删除了)。要解决此问题并让URL重写处理,我只需添加一个

routes.IgnoreRoute("子目录/ {} PATHINFO }&#34);

到RouteConfig.cs。