Ich entwickle eine Website auf Azure, mit MVC5. Ich verwende Attribut-Routing mit Routen und Routen-Präfix auf Controllern. Ich rufe mit action.link helper an. Ich habe meine Routen nicht benannt.Schlechte Leistung und langsame Website mit MVC 5 Attribut-Routing
Ich habe folgendes auf meinem 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 }
);
Meine Controller sind wie:
[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()
Ich habe sehr, sehr schlechte Leistung als Server-Antwortzeit, dh 9.6s
Wenn ich die Attribut-Route-Codes auskommentiere, habe ich beim Standard-Routing eine Server-Antwortzeit von 2,1 Sekunden.
Vielen Dank für Ihre Antworten.
Tritt die schlechte Leistung nur während der ersten Anforderung an IIS auf? Dies kann dadurch verursacht werden, dass IIS den ursprünglichen Arbeitsprozess erstellt. – alex
Ich sehe das gleiche, speziell, dass Call die zugeordneten Routen zuordnen. Ich nehme an, dass es daran liegt, dass mehr Assemblies gescannt werden als nötig, um alle Attribute zu finden, oder dass die Reflektion langsamer als die routinemäßigen Programmdefinitionen ist. –