我正在使用的Web應用程序VS2010報表查看器控件的應用SessionState的模式設置爲StateServer如下的ReportViewer - 「無法序列化會話狀態‘的StateServer’和‘SQLSERVER’模式
<sessionState timeout="30" mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes" cookieless="false" />
。 reportviewer控件在我的開發機器上工作正常,但是當應用程序部署到服務器上並且reportviewer控件頁面加載時拋出以下錯誤..所有其他頁面都正常工作。
「無法序列化會話狀態。在'StateServer'和'SQLServer'模式下,ASP.NET將序列化會話狀態對象,因此不允許使用不可序列化的對象或MarshalByRef對象。如果類似的序列化是通過在「自定義」模式自定義會話狀態存儲做了同樣的限制也適用。」
任何人都可以請幫助,任何想法會有很大幫助..
在此先感謝。
rptvw.ProcessingMode = ProcessingMode.Remote;
rptvw.ServerReport.ReportServerUrl = new Uri("http://localhost:90/reportserver");
rptvw.ServerReport.ReportPath = string.Format("/Reports/{0}", reportName);
var param = new ReportParameter[4];
param[0] = new ReportParameter("Parameter1", DropDownListCodes.SelectedValue));
param[1] = new ReportParameter("Parameter2", DropDownListQuarters.SelectedValue));
param[2] = new ReportParameter("Parameter3", DropDownListComparators.SelectedValue));
param[3] = new ReportParameter("Parameter4", comptype);
rptvw.ServerReport.SetParameters(param);
rptvw.ServerReport.Refresh();
我認爲你錯過了'初始目錄='在此連接字符串,或您嘗試添加到會話列表,不能序列化,如Dictionary <> – Aristos
感謝您的回覆。上面的標記不是連接字符串,它是一個sessionState標記。只是爲了讓您知道,我沒有在該頁面的會話中存儲任何內容。只需使用reportviewer控件加載.rdlc報告。 – Savvy
正如@Aristos所說,您應該檢查ReportViewer頁面上的會話內容。據我所知,房車在會話 – jbl