我正在將應用程序從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。