2010-03-03 340 views
14

我剛剛在臺式機上安裝了Windows 7 x64 Ultimate。我安裝了IIS,Visual Studio 2008,註冊ASP.NET等。在IIS 7.5(Windows 7)下運行速度極慢的ASP.NET網站

我有這個ASP.NET 3.5網站我正在對這個新的IIS運行EXTREMELY慢。在STA和PROD服務器(Windows 2003 Server)和我的舊XP/IIS 5.1上,一切運行都很順利。

通常需要1-2秒加載的頁面需要8秒鐘!

我在IIS論壇上看到了this post。它說了一些關於Vista/7的信息,不是關聯連接(只是爲了讓你知道,該網站在本地運行,但它連接到遠程服務器上託管的SQL Server 2005)。

似乎需要一段時間才能「開始加載」頁面...我的意思是,我點擊刷新,並保持幾秒鐘「等待本地主機」...然後,當它得到響應它加載整個頁面正常...

我沒有線索如何強制Win7/IIS7.5池數據庫連接。

編輯:我創建了一個新的空的ASP.NET Web應用程序,以查看問題是否也發生了。答案是否定的,它響應速度很快,因爲它應該有一個空的默認頁面。也許是與數據庫連接有關的東西。我會做一個進一步的測試。它應該是一種解決方法...

編輯2:調試應用程序我注意到延遲發生後的.NET代碼(Page_Load等)執行......所以延遲似乎是當IIS將頁面提供給瀏覽器時。

+0

適合serverfault.com的好候選人imo ... – ChristopheD 2010-03-03 22:28:58

+1

應用程序配置是編程/開發imo的重要組成部分。 – Russell 2010-03-03 22:32:45

+0

雖然與編程有一些相關性,但開發人員需要知道這種東西,因爲他們必然會遇到它。 – slugster 2010-03-03 22:32:52

回答

5

對於那些有同樣問題的人,這裏有兩種可能的解決方案。在Firefox

  • 1)禁用IPv6的支持(只適用於Firefox)

大多數,我發現了關於作者建議這種方法稱爲最快和乾淨的解決方案。你需要做的是基本上在Firefox中打開配置設置(about:config)並將network.dns.disableIPv6設置更改爲true。在您的主機文件

  • 2)localhost更改設置(所有瀏覽器)

這來找我作爲一個主意,檢查那裏,我怎麼能在IPv6設置干涉我的機器上。我看到了上面提到的消息來源中的一條評論,他說可以通過簡單地用url中的機器名替換localhost來解決問題。

不需要很長時間就可以檢查並查看禁用IPv6本地主機查找與在Firefox中直接禁用IPv6的功能相同。

你需要做的基本上是評論/主機文件中刪除這一行:

#::1    localhost 

注::: 1符號是等價的IPv6 IPv4的127.0.0.1查找地址。

我認爲第二種解決方案可能更適合不想禁用IPv6的用戶,而第一種解決方案可能更適合於所有其他用戶在日常工作中仍未使用IPv6的用戶。

+0

Gah鏈接已關閉! – 2010-06-14 10:29:47

+0

@IdeDevlin它的工作,但我會編輯的問題,以防萬一它再次打破。 – emzero 2012-03-14 19:04:15

1

你可以嘗試運行多個進程的應用程序池:

  • 打開IIS
  • 單擊應用程序池
  • 右鍵單擊該應用程序池爲您的應用程序 ,點擊高級設置
  • 找到 「最大工作人員進程」並將其更新爲 它爲3(或您希望允許運行的進程數 )。
+0

將它更新爲3 ...沒有任何改變....似乎需要一段時間才能「開始加載」頁面...我的意思是,我點擊刷新並保持幾秒鐘「等待本地主機」.. 。然後,當它得到響應它正常加載整個頁面... – emzero 2010-03-04 01:04:22

+0

這聽起來像每個請求重新激活服務。檢查服務保持活動超時設置爲零。 – Russell 2010-03-04 05:33:49

+0

你會在哪裏設置? – noobish 2011-02-19 01:04:45

3

我遇到了同樣的問題:使用Windows 7 64位上帶有4 GB RAM的Core 2 Duo和運行1個網站的3個應用程序池進程的IIS 7.5上的IIS 7.5速度非常慢。這是我做了什麼來獲得速度回到IIS,問題解決了...

對我來說,訣竅是使用32位工作人員運行IIS,如Microsoft在IIS.net上所指示的,您可以在這裏閱讀:提供

http://learn.iis.net/page.aspx/201/32-bit-mode-worker-processes/

簡單的解決方案(我並不想在這裏把它改寫)......要麼你可以運行在Windows命令提示符或從Windows PowerShell的一個1行命令1行命令。我只是從命令行運行它(確保以管理員身份打開Command Line或PowerShell - 右鍵單擊​​>以管理員身份運行)。

感謝, 馬蒂·麥吉

+0

我不知道你爲什麼要這樣做,但你確定它不是因爲IPv6嗎?這是一個已知的錯誤。 – emzero 2012-04-03 03:18:10

+0

我所知道的是IIS.net網站建議IIS使用Windows 7 64位上的32位工作人員作爲鏈接狀態。我完全不知道它是否與IPv6有關。我所知道的是,我在本地機器上運行本地站點,而IIS在64位處理器上速度很慢,而在32位處理器上速度很快。如果它有幫助 - 我不必在Windows 2008 Server 64位上執行此操作,因爲IIS 64位工作人員在此操作系統上運行得很好。 Windows 7對我來說是另一回事。 – 2012-05-22 20:04:28

+0

但你有沒有嘗試禁用ipv6,因爲它在接受的答案中說? – emzero 2012-05-23 04:08:05

0

我知道運正在運行IIS 7.5,這可能並不適用於他,但我張貼這個,因爲它可能會幫助別人跑IIS Express 8.0。我有同樣的問題,沒有任何IPv6或主機文件更改爲我工作。點擊F5刷新本地主機上的js更改後,我的asp.net MVC4項目非常慢。它發生在所有瀏覽器上 - Chrome,FF和IE。最終我發現IIS Express 8.0在提供js文件時速度非常慢,並且似乎是一個bug。如果我在命令行上運行iisexpress並點擊F5,我可以看到每個js文件需要4或5秒才能加載。

我最終卸載IIS 8.0並安裝IIS Express 7.5,並立即解決了問題。下面是我遵循的步驟:

IIS Express 8.0似乎與VS 2012一起安裝,因此如果您有新的安裝或可能的Service Pack更新,則可能會升級以前的IIS Express版本。