在仔細閱讀堆棧交換&幾個月後,我來到社區尋求幫助。我是我的組織的IIS管理員&我一直在看到一個問題,即當對.NET應用程序進行更改時,頁面首次提交請求時頁面加載需要很長時間。當我說了很長時間時,我有時會說從五分鐘到半小時的任何地方。我已經嘗試了一些項目來解決這個問題。但是我相信有一個配置設置掩埋在導致問題的地方。一旦頁面加載一次,它的加載時間是正常的。無論應用程序如何,它似乎都會發生,儘管有些需要比其他時間更長。這也不一致。有時在更改後需要7分鐘才能加載。同樣的應用程序可能需要十七分鐘才能在下一次進行更改時加載......更改通常很小,新的圖像框被移入或添加了新的鏈接。沒什麼大不了.NET應用程序在IIS-8中加載速度極慢Windows Server 2012
如果一個應用程序需要二十秒到一分鐘才能第一次加載,我們並不擔心。但十分鐘,十五分鐘,有時半小時的加載時間是不可接受的。
不管它是靜態內容應用程序,還是發送到數據源,都會發生此問題。任何到數據源的連接都是在應用程序級別配置的。我們僅在少數應用程序上使用它&我驗證了連接信息在web.config中對那些涉及數據源的應用程序有效。我們在每個應用程序上使用Windows身份驗證。
我們運行的是三層環境,所有環境都運行Windows Server 2012 R2標準版,其中包含16gb ram &多核CPU設置。我們在.NET 4.0.30319上運行IIS 8.5。應用程序池正在利用集成管道支持32位應用程序(應用程序)。這些是VMware主機。服務器每週重新啓動一次。 我們的測試或開發服務器上不會發生此問題。只有我們的生產服務器無論改變是在什麼時候進行。
2016年12月,我將所有.NET應用程序從運行IIS 6.0的舊版Windows 2003系統移植到新的Windows 2012系統。雖然我們與開發人員合作來更改應用程序中的任何硬編碼主機名,但我們最終必須安裝CNAME主機記錄以將舊主機名重新指向新主機名。這個問題似乎是在這個時候開始的。
我注意到的一個問題是,開發人員正在以調試模式編譯所有應用程序。我們將此設置更改爲false,但在某些情況下只會略有幫助。
我嘗試以下還有:
分離給定的應用&設置應用程序池始終運行。還嘗試更改應用程序池標識以作爲網絡服務運行,或作爲服務帳戶用戶運行。
添加應用程序初始化角色&在IIS中配置始終運行應用程序池&已在應用程序級別啓用預加載。 - 當我看到它沒有改變時,我支持了這一點。
我把我們的測試/開發服務器之間的所有角色結合起來,這些問題沒有發生在生產環境中。
在應用程序池級別禁用空閒超時。有關編譯設置,超時測試&生產之間
相比設置等
做出任何區別這些變化都沒有。我找不到任何區別測試/開發盒的地方,因爲沒有問題&生產有問題的服務器。請讓我知道你可能需要什麼額外的信息&我欣賞提前的幫助!
謝謝, 邁克
「無論它是否爲靜態內容應用程序,都會發生問題」,等待一小時的等待表明這不是問題。他們的服務器被弄溼了,他們需要將它吹走並重新安裝所有新鮮的東西,可能將它扔進廢話的垃圾桶並獲得更好的服務器。 – Will
@我承認我只是剔除了他的8段。 –
對不起,這篇冗長的文章,只是想盡可能的全面。感謝迄今爲止的輸入。所有頁面在初始加載之後運行良好 - 我不知道服務器是否完全洗淨 - 儘管如果我有機會從更高層次重新構建,那麼將會採用該選項。 – mmostwill