2011-03-03 93 views
1

我遇到的問題與我的開發環境中的任何調用緩存應用程序塊的CacheFactory導致IIS崩潰。我創建了一個非常簡單的Web應用程序,每次嘗試運行時都會導致IIS崩潰,但是該應用程序在Visual Studio.NET Web服務器下正常工作。高速緩存應用程序塊崩潰IIS

下面的代碼是什麼原因導致在IIS下運行時,應用程序崩潰:

protected void Page_Load(object sender, EventArgs e) 
{ 
    try 
    { 
     ICacheManager cm = CacheFactory.GetCacheManager("foo"); 
     Response.Write(cm.GetHashCode()); 
    } 
    catch(Exception ex) 
    { 
     Response.Write(Server.HtmlEncode(ex.ToString())); 
    } 
} 

我稻草樣的抓在這裏,但有沒有人見過類似的行爲?有一段時間我看到「嘗試讀取或寫入受保護的內存,這通常表示其他內存已損壞。」錯誤,但現在我只是遇到崩潰。在我上面的代碼示例中,當我在IIS下運行時,捕獲從未達到,因爲w3wp.exe進程失敗。發生這種情況時,我得到在事件日誌中輸入以下內容:

進程服務應用程序池 「WebApplication1」與Windows 進程激活服務遇到致命 通信錯誤。 進程ID是'1944'。數據字段 包含錯誤編號。

我已經嘗試重新安裝企業庫並重新運行aspnet_regiis.exe無濟於事。我也嘗試刪除Web服務器角色並重新安裝它,但那也不起作用。

  • 的Windows服務器上運行VS.NET 2010 SP1測試版2008 R2 x64的網絡版的VirtualBox 4.0.4
  • 下使用企業庫5.0
  • 直到最近:

    關於我的開發環境的一些注意事項,這個dev服務器上的所有東西都運行正常。

  • 在這一點上,數據執行保護已使用bcdedit.exe的

編輯

我已經縮小這個問題降低到.NET 4.0框架問題被關閉。當我針對3.5框架構建Web應用程序時,它按預期工作,但是當我針對4.0框架構建時,IIS在運行Web應用程序時會崩潰。

+1

你試過發佈網站的Visual Studio之外,並掛接多達IIS?然後,你可以測試一個乾淨的web應用程序,沒有任何與VS的關係,以防萬一,這會干擾你的應用程序 - 因爲你在測試版VS上,這是第一個跳到我身上的東西。 – 2011-03-04 00:59:48

+0

這很奇怪。我傾向於某種類型的真正的硬件故障。其他虛擬圖像中是否有失敗跡象? – NotMe 2011-03-04 02:46:03

+0

另一個想法是,你能啓動一個全新的Windows Server實例並運行你的測試代碼嗎? – NotMe 2011-03-04 02:46:54

回答

4
+0

是的,淨化工具工作!感謝您的鏈接。在運行之前,我停止了w3svc服務並運行aspnet_regiis.exe -u從IIS刪除ASP.NET。然後我運行清理工具並告訴它刪除.NET 4.0。該卸載工具大約需要5分鐘才能完成,並在完成後自動重新啓動虛擬機。我重新安裝了4.0 Framework,然後運行aspnet_regiis.exe -i。之後我又恢復了業務。再次感謝。 – rsbarro 2011-03-04 19:47:31

+0

@rsbarro:太棒了!很高興爲你工作。 – NotMe 2011-03-04 20:26:16