排除不一致的路由问题

时间:2016-03-07 17:27:48

标签: asp.net-core asp.net-core-mvc

我正在将应用程序从mvc4移植到mvc6。使用iis平台主机在Windows下运行。 RC1-UPDATE1。

到目前为止,windows / iis中的一切都很好,但是一旦部署到linux + mono 4.22,我会遇到许多奇怪的路由问题,包括声明它没有找到动作的路由(但是该控制器中的其他所有内容都很好)和有时会在候选人完全关闭的地方抛出AmbiguousActionException。

我在启动时已经有了这个

app.UseMvc(routes =>
        {
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");
        });

并标记了类似的行为

[HttpGet, Route("/Users/Find/{id?}")
public ActionResult Find(int id){

我经常发现Url.Action只是粘贴随机id的情况(甚至为路由字典对象传递null或空参数)。

所以问题......

我可以做些什么来更好地解决问题...在Linux和Windows环境中存在明显的差异......无论是windows vs linux,还是dev vs prod,还是iis vs kestrel。是否有路由中间件可以帮助解决问题。

我觉得这里有一个错误,但是我甚至不知道我可以指定什么样的信息,或者用来做更多的工作。路由中断的地方是间歇性的,是一个更大的解决方案的一部分,所以不是一个简单的复制。

1 个答案:

答案 0 :(得分:0)

所以在这里结束了几天的怪异之后,我突发奇想地升级到单声道4.3.2,奇迹般地开始按预期工作。无法告诉你为什么,但显然我试过的其他版本(4.0.5和4.2.2-sr1或其他什么)有解析网址或其他问题?