具有 asp.net MVC 站点的 IIS 反向代理



Setup:

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

- IIS 反向代理设置,其中站点 A 的/子目录指向站点 B 域。

- IIS 重写模块已移至站点 A 的 IIS 模块列表的顶部。

问题:

反向代理配置适用于 testsiteA,除了 web.config 中的 IIS 重写规则外,该 IIS 文件夹中没有任何内容。没有其他文件夹、文件等。此测试站点 A 工作正常,因为重写规则按模拟方式工作。但是,当我将相同的规则应用于具有 asp.net MVC 网站托管的真实站点 Site A 时,永远不会处理重写规则。相反,将在 global.ascx 中访问application_error处理程序,并且不处理 URL 重写规则的处理。我尝试执行 Response.End(),清除服务器错误,基本的"return;"语句到结束执行,所有这些都在 application_error 处理程序中,但没有一个有效。

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

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

路线。IgnoreRoute("subdirectory/{}pathInfo}");

到路由配置.cs。

最新更新