2008-12-17 115 views
1

我們正在將我們的Web應用程序從ASP.NET 1.1遷移到ASP.NET 3.5。我們的應用程序通過DNS輪循機制在多臺服務器上運行,因此每個瀏覽器請求最終都可能在不同的服務器上。我們在web.config中有一個防止驗證錯誤的方法。ASP.NET Viewstate驗證 - ASP.NET 1.1與ASP.NET 3.5

但是,我們的計劃是每次遷移一臺服務器。現在看起來像用戶在1.1上加載頁面。服務器,然後頁面在回發的3.5服務器上結束,視圖狀態驗證失敗。

我一直沒能在網上找到關於這個問題的任何東西 - 這只是我的猜測,視圖狀態驗證在1.1之間是不兼容的。和3.5,即由1.1生成的視圖狀態即使使用相同的machineKey也不會在3.5上驗證,反之亦然。

任何人都可以證實這種懷疑嗎?

感謝

回答

1

使用粘性會話中this similar post提及。這將使用戶在同一臺​​計算機上保持一段時間。

我不認爲明智的做法是允許單個用戶在單個會話中擊中三個不同版本的框架。

0

您是否正在爲3.5主機運行IIS7?我遇到了許多ViewState在IIS7上運行1.1應用程序的問題。在IIS7上正常運行1.1應用程序已經足夠了,更不用說嘗試在多個框架版本之間進行網絡化了。我遇到的最大的事情是ViewState的加密或管理與IIS的previos版本不同。如果您嘗試在1.1上設置weg-garden,則會出現各種ViewState加密錯誤。您不能在IIS7上的1.1應用程序上設置Web園(有多個工作線程)。至少從我的經驗來看。

0

我相信1.1和2.0對viewstate使用不同的默認加密算法。 1.1的默認值是3DES,我相信2.0是SHA1(儘管目前我似乎無法找到相關文檔來支持它)。嘗試在新服務器上將機器密鑰中的驗證設置爲3DES,然後查看是否可以解決問題。

<machineKey validation="3DES">