[英]Need to save block of data in ASP.NET between page refreshes in web farm without using inprpc or state server
我有一個運行在服務器場中的asp.net應用程序。 因此,過程中會話已結束。 沒有狀態服務器。 有一個sql server數據庫(不能用於狀態服務器)。 沒有強制相同的Web服務器服務功能,因此無法保證哪個Web服務器將服務下一頁。
我需要在頁面之間保存一個數據塊(大對象狀態)。 我不想使用viewstate,因為數據可能很大,並且不希望它遍歷整個網絡。 我可以使用數據庫來保存數據,並在視圖狀態下跨線使用記錄ID,並檢索下一頁的數據。
有更好的解決方案嗎?
我可以使用數據庫來保存數據,並在視圖狀態下跨線使用記錄ID,並檢索下一頁的數據。
您已經消除了所有其他選擇。
好吧,我想您已經排除了大多數選擇。 假設您無法安裝其他服務,那么我想到了另外兩種可能性:
與在SQL Server版本中一樣,不要忘記以某種方式清理數據。 選項1在這方面與SQL Server非常相似,但是對於SQL Server來說,它可能僅僅是集中式清理作業,在文件共享的情況下,問題變為:哪台服務器是中心?
*)當然,您可以嘗試從ASP.NET生成輔助進程。 這里的問題變成了:如果該過程有問題怎么辦? 默認情況下,它對於您的系統管理員是不可管理的,除非您將其設置為可管理。
我不確定我是否閱讀正確,但是您不能使用數據庫存儲asp.net會話嗎?
<sessionState
mode="SQLServer"
sqlConnectionString="somedb"
cookieless="AutoDetect"
timeout="20"
/>
您還可以使用某種分布式緩存解決方案,例如memcached(http://www.danga.com/memcached/) ,它可以在回發之間保留數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.