我正在開發一個ASP.NET MVC Web應用程序(C#),它是整個大型應用程序(主要是基於桌面/ win服務的 - VB.NET)的一個模塊。目前,該應用程序對作爲自己的獨立應用程序(也使用MVC,VB.NET)的Web服務(作爲API提供)進行HTTP調用。可能不是我將如何設計它,但這是我繼承的。MVC Web應用程序和API Web應用程序可以在同一個池中運行嗎?
我的問題是這樣的:如果我在本地IIS中託管MVC應用程序並在IIS Express中運行API項目,一切都很好。如果我將這兩個項目拆分爲在本地IIS中的單獨應用程序池中運行,那麼所有這一切都很好。但是,如果我在IIS中的同一個池中運行這兩個應用程序,我遇到了很多問題。也就是說,當我打電話給HttpClient.GetAsync(url) - 特別是在一個頁面調用這個9次來根據ID動態檢索不同的圖像時(每次調用MVC應用程序,然後調用API)。有些電話通過,大多數不通過。
異常與取消任務有關(超時= 100s) - 但操作需要幾分之一秒的時間,因此不需要超時。當它失敗時,執行甚至不會將它變成API端的函數 - 就像HTTP客戶端已經放棄提供更多的連接一樣,或者任務正在等待HTTP發送請求,它永遠不會。
我試過使它異步通過,嘗試使HttpClient靜態等,但沒有喜悅。這僅僅是不應該做的事情 - 允許這兩個應用程序共享一個應用程序池?如果是這樣,我可以忍受。但是如果有什麼我可以做的更有效地處理它,那將非常有用。任何信息/資源將非常感激。 TA!