2016-03-07 52 views
1

我正在將應用程序從mvc4移植到mvc6。使用iis平臺主機在windows下運行。 RC1-UPDATE1。排除不一致的路由問題

到目前爲止,在windows/iis中一切都很好,但是一旦部署到linux + mono 4.22,我會遇到很多奇怪的路由問題,包括聲明它找不到某個動作的路由(但是該控制器中的其他所有內容都可以)有時會拋出AmbiguousActionException,看起來候選人完全不在。像這樣的

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

我在啓動

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

了這一點,並標記了行動,我發現頻繁的情況下Url.Action只是堅持隨機ID在(甚至通過用於路由字典對象的空或空參數)。

所以這個問題...

我能做些什麼來更好地解決這些問題...有在Linux和Windows環境的差異確定是否...這就是窗戶VS Linux或dev vs prod,或iis vs kestrel。是否有路由中間件可幫助解決問題?

我覺得在這裏有一個錯誤,但甚至不知道我可以指定什麼樣的信息,或者用來做更多的工作。路由中斷的地方是間歇性的,是更大的解決方案的一部分,所以不是一個簡單的repro。

回答

0

因此,在這裏連續幾天與怪物戰鬥後,我突然升級到單聲道4.3.2,事情奇蹟般地開始按預期工作。不能告訴你爲什麼,但顯然在我嘗試的其他版本(4.0.5和4.2.2-sr1或其他)有問題解決網址或什麼?