解決 asp.net web api ttfb 很慢

參考自

https://www.itread01.com/article/1530756582.html

https://stackoverflow.com/questions/41458420/long-ttfb-on-simple-get-query-in-web-api

https://stackoverflow.com/questions/36326942/how-to-reduce-wait-time-ttfb-for-mvc-application

https://www.cnblogs.com/CreateMyself/p/5408400.html

https://stackoverflow.com/questions/9594229/accessing-session-using-asp-net-web-api

https://blog.darkthread.net/blog/mvc-slow-magic/

因為燙手的案子是硬用 asp.net + asp.net web api 掛在一起,導致很多莫名其妙的事發生,起初還以為是 sql 查詢的問題,但實際執行起來並沒有到想像中的那麼慢。

於是參考了一些文章並且把 session 進行調整,速度馬上有明顯提升。只是不曉得原本開發的那票人是否有用 session 在 code 裡就是,有的話就尷尬了。

解法就是在 Global.asax 這支程式內加上以下 code 性能會有飛快的提升

public override void Init()
    {
        PostAuthenticateRequest += MvcApplication_PostAuthenticateRequest;
        base.Init();
    }

    void MvcApplication_PostAuthenticateRequest(object sender, EventArgs e)
    {
        //HttpContext.Current.SetSessionStateBehavior(
        //  SessionStateBehavior.Required);

        System.Web.HttpContext.Current.SetSessionStateBehavior(SessionStateBehavior.ReadOnly);
    }

發佈留言