【发布时间】:2015-04-09 04:16:46
【问题描述】:
我正在使用 mvc5 在 Azure 上开发一个网站。我使用属性路由,在控制器上使用路由和路由前缀。我用 action.link 助手打电话。我没有命名我的路线。
我在 route.config 上做了以下操作:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.LowercaseUrls = true;
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
我的控制器是这样的:
[OutputCache(Duration = 600, Location = System.Web.UI.OutputCacheLocation.Client)]
[RoutePrefix("istanbul/kadikoy")]
[Route("{action=index}")]
public class KadikoyController : Controller
{
public ActionResult Index()
{
return View();
}
[Route("kadikoy-tarihi")]
public ActionResult KadikoyTarihi()
作为服务器响应时间,我的性能非常差,即 9.6 秒
如果我注释掉属性路由代码,使用默认路由,我有2.1秒的服务器响应时间。
感谢您的回复。
【问题讨论】:
-
性能不佳是否只发生在第一次向 IIS 请求期间?这可能是由 IIS 创建初始工作进程引起的。
-
我看到了同样的事情,特别是调用来映射属性路由。我怀疑这是因为它扫描的程序集比查找所有属性所需的要多,或者可能只是反射必然比编程路由定义慢。
标签: c# routes asp.net-mvc-5 asp.net-mvc-routing attributerouting