我使用一个简单的ASP.NET MVC Web(您在创建新站点时使用的模板),并且Web在我的实时环境中按预期工作.
我现在尝试使用IIS应用程序请求路由版本2.我有一个规则,将所有请求发送到与规则匹配的其他服务器.
设置有点像这样:http://blogs.iis.net/wonyoo/archive/2008/07/09/application-request-routing-arr-as-a-reverse-proxy.aspx
我的规则与/ shop(.*)略有不同.只有包含商店的请求才会发送到其他服务器.我必须使用重写,而不是重定向(与图片中相同)
只要原始请求转到非ASP.NET MVC Web,这就可以工作.我试图在web文件夹中使用普通的htm文件并且它有效.如果将已编译的ASP.NET应用程序放入web文件夹中,则可以正常工作.但是,只要我将ASP.NET MVC Web放入该文件夹,请求此应用程序提供服务.
我的理解是ARR应该在Web应用程序有机会处理请求之前启动.有没有人成功使用ARR作为ASP.NET MVC网络的反向代理?
编辑
输入重写轮次时,这是生成的Web配置.通过此规则,我得到一个404,表示该规则未被使用.
yoel halb.. 15
在Global.asax.cs文件中添加以下路由条目:
routes.IgnoreRoute("Shop/{*pathInfo}");
这解决了我的问题.
似乎MVC路由系统在ARR之前启动,这在集成模式下运行时是有意义的.
在Global.asax.cs文件中添加以下路由条目:
routes.IgnoreRoute("Shop/{*pathInfo}");
这解决了我的问题.
似乎MVC路由系统在ARR之前启动,这在集成模式下运行时是有意义的.
我们几乎完全按照您描述的相同设置.我们发现MVC和ARR在同一网站上不会很好.我怀疑是因为MVC路由和ARR路由做了类似的事情并且干扰了.要解决这个问题,我们必须将ARR规则放在一个单独的网站中.域和所有内容都指向ARR站点,然后ARR站点会将请求发送到需要的位置.
我们有处理特定情况的特定规则,以及最后将全部请求发送到MVC站点的全能规则.