2013-03-21 24 views
1

我有兩個或多或少完全相同的網站,它們都運行在同一臺服務器上,但在不同的應用程序池下運行。應用程序池都配置爲使用「NETWORK SERVICE」憑據運行。查看開發中的狀態錯誤但不生產

在一個網站上 - 這稱之爲發展副本,我收到了臭名昭著的「視圖狀態MAC驗證失敗」錯誤。當頁面空閒20分鐘後發生回發時會發生這種情況。我被告知這是因爲我沒有在web.config或機器配置文件中指定機器密鑰。按預期方式手動回收應用程序池會重現錯誤。所以我的問題不是關於如何制止這個問題,而是我想知道爲什麼錯誤發生在dev而不是生產中。兩個站點的設置唯一的區別是身份驗證方法。

在IIS配置的「基本設置」部分中,該網站的開發版本被設定使用服務帳戶連接,同時生產版本使用「應用程序用戶」(通過驗證)。在身份驗證設置下,這兩個頁面都配置了模擬和Windows身份驗證。

這是我能看到的唯一區別。我對IIS如何在網站和應用程序池級別處理身份驗證的知識相當有限。是否有一個特定的原因,爲什麼一個設置應該導致機器鍵被刷新,但另一個沒有?

+0

ViewState依賴於一個會話。您是否在進行會話之前進行任何欺騙手段,以便在回發之前使會話失效(放棄,清除)會話? – JDPeckham 2013-03-21 16:01:46

+0

不可以。如前所述,這兩個網站的代碼沒有區別。唯一的區別是驗證方法 – Trent 2013-03-21 22:22:10

回答

0

安裝.NET 3.5 SP1後,您可能會在ASP.NET頁面做回發時的視圖狀態MAC驗證失敗例外。

+0

這些站點運行在.net 4.0 – Trent 2013-03-21 22:22:28

相關問題