在同一个控制器下,我有两个动作方法,一个在几毫秒内执行,另一个执行大约需要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下时,我对它们都有问题。若我将方法拆分为不同的控制器,那个么SomeController下的GetIndex()方法性能较差,Some2Controller下的GetIndex2()性能很好。