Проблемы с производительностью в asp. net веб-API с одинаковыми методами действий под тем же контроллером - PullRequest
1 голос
/ 08 января 2020

Итак, у меня очень странная проблема с asp. net web api.

Под одним и тем же контроллером у меня есть два метода действия, один из которых выполняется в течение нескольких миллисекунд, а другому требуется около 1,5 секунд. Код внутри обоих методов идентичен.

Я никогда не видел ничего подобного, и действительно не знаю, как решить эту проблему.

Вот мой код

 [RoutePrefix("test/v420")]
    public class SomeController : ApiController
    {
        ISomeIndex someIndex;

        public Listings42_Controller(ISomeIndex someIndex)
        {
          someIndex = someIndex;
        }

        [HttpGet]
        [RequireHttps]
        [Route("test1")]
        public async Task<HttpResponseMessage> GetIndex()
        {
            var obj = await someIndex.Generate();

            return new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(SerializeToXml(obj),Encoding.UTF8, "application/xml")
            };
        }

        [HttpGet]
        [RequireHttps]
        [Route("test2")]
        public async Task<HttpResponseMessage> GetIndex2()
        {
            var obj = await someIndex.Generate();

            return new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(SerializeToXml(obj),Encoding.UTF8, "application/xml")
            };
        }
}

ОБНОВЛЕНИЕ

Итак, на сервере dev все работает нормально, на рабочем сервере у меня проблема с обоими методами, когда они находятся под SomeController. Если я разделю методы на разные контроллеры, то метод GetIndex () в SomeController имеет низкую производительность, а GetIndex2 () в Some2Controller работает просто отлично.

...