0

在仔細閱讀堆棧交換&幾個月後,我來到社區尋求幫助。我是我的組織的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中配置始終運行應用程序池&已在應用程序級別啓用預加載。 - 當我看到它沒有改變時,我支持了這一點。

  • 我把我們的測試/開發服務器之間的所有角色結合起來,這些問題沒有發生在生產環境中。

  • 在應用程序池級別禁用空閒超時。有關編譯設置,超時測試&生產之間

  • 相比設置等

做出任何區別這些變化都沒有。我找不到任何區別測試/開發盒的地方,因爲沒有問題&生產有問題的服務器。請讓我知道你可能需要什麼額外的信息&我欣賞提前的幫助!

謝謝, 邁克

回答

0

我們發現了這個問題。我們的AV軟件是罪魁禍首。特別是趨勢科技Deep Security。

當請求被提出時&程序將在臨時區域(C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Temporary ASP.NET Files)中編譯 - 我注意到它似乎正在進行很長的時間才能建立文件。預編譯看到了相同的行爲。我問我們的LAN管理員爲這個特定的文件夾添加一個例外。一旦完成,第一次加載只需5-10秒,這是可以接受的。再次感謝您的輸入。

0

你想預編譯的網頁,使他們沒有得到第一次運行編譯。 IIRC它只是一個簡單的web.config添加。

https://msdn.microsoft.com/en-us/library/bb398860.aspx

雖然說實話,每個頁面編譯5分鐘的時間好像有一個更大的問題怎麼回事。我從來沒有見過一個新的aspx編譯時間超過幾秒鐘。

+0

「無論它是否爲靜態內容應用程序,都會發生問題」,等待一小時的等待表明這不是問題。他們的服務器被弄溼了,他們需要將它吹走並重新安裝所有新鮮的東西,可能將它扔進廢話的垃圾桶並獲得更好的服務器。 – Will

+1

@我承認我只是剔除了他的8段。 –

+0

對不起,這篇冗長的文章,只是想盡可能的全面。感謝迄今爲止的輸入。所有頁面在初始加載之後運行良好 - 我不知道服務器是否完全洗淨 - 儘管如果我有機會從更高層次重新構建,那麼將會採用該選項。 – mmostwill

0

Neil N的回答很有道理,但我肯定會檢查並確定所有服務器上的設置是否相同。

如果這不是罪魁禍首,我的下一站肯定會查看事件查看器的「應用程序」部分。它可能會拋出一些有意義的警告,以幫助您更接近問題的根源。

相關問題