Мне нужно создать одно соединение для всего сеанса пользователя в MVC.
Ниже код записан в контроллере входа для достижения того же значения
OracleConnection con = new OracleConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["OracleConnection"].ConnectionString;
con.Open();
Session["oracle_con"] = con;
тогда, когда мне нужносоединение будет проверяться, как показано ниже
OracleConnection or_con = (OracleConnection)Session["oracle_con"];
if (or_con.State == ConnectionState.Closed)
or_con.Open();
Это нормально работает в моей локальной системе, sessin sate mode - 'InProc'
Но на сервере режим состояния сеанса "StateServer" , поэтому преобразование соединения Oracle в сеанс выдает следующую ошибку
Невозможно сериализовать состояние сеанса.В режимах «StateServer» и «SQLServer» ASP.NET сериализует объекты состояния сеанса, и в результате несериализуемые объекты или объекты MarshalByRef не допускаются.То же ограничение применяется, если аналогичная сериализация выполняется в пользовательском хранилище состояний сеанса в режиме «Пользовательский».
[SerializationException: введите «Oracle.ManagedDataAccess.Client.OracleConnection» в сборке «Oracle.ManagedDataAccess, версия = 4.121»..1.0, Культура = нейтральный, PublicKeyToken = 89b483f429c47342 'не помечен как сериализуемый.]
Это правильный путь или любой другой способ выполнить мое требование?