Моя проблема заключается в том, что у меня есть приложение ASP.Net с кристальными отчетами. Я должен хранить объект отчета Crystal Reports ReportDocument
в состоянии сеанса, который является неуправляемым ресурсом.Очистка неуправляемых ресурсов из сеанса, например, Crystal Report Document
Мой вопрос: Будет ли ReportDocument
объект быть утилизированы на Session.Abandon
или мне придется вручную делать это сам, и если я должен вручную удалить ReportDocument
объект из состояния сеанса. Какой процесс следует использовать, потому что на этапе Session_End
я не знал бы, какое имя объекта, которое было сохранено в SessionState
, не сможет идентифицировать Key
, с которым объект ReportDocument
хранится в Session
.
Пожалуйста, помогите ...
Я использую режим сеанса InProc, поэтому мне не нужно сериализовать копию объекта, который будет храниться в состоянии сеанса, или же объект сериализуется перед сохранением в сеансе ???? –
Да, возможно, вы правы, я не думаю, что объект сериализуется, если вы используете режим сеанса InProc. В таком случае вы можете объяснить, почему вы не знаете ключ? Ключ должен быть уникальным только для каждого сеанса, например. session ["report"] будет работать отлично с несколькими сеансами, и каждый сеанс получит собственную версию. Если вам нужно сохранить много отчетов, сохраните коллекцию отчетов одним ключом. –
У меня есть более пятнадцати страниц, каждый из которых хранит свой собственный документ Crystal Reports в сеансе, чтобы использовать пейджинг Crystal Reports, который не будет работать, если я не помещу его в Session. Я сказал об этом, потому что может быть добавлено больше страниц с дополнительными объектами Document, хранящимися в сеансе ... –