Session state can only be used when enableSessionState is set to true


K

KevinGravelle

What is wrong with this picture?

I'm trying to set my shopping cart text on my home page using the
following function that is executed when the class is constructed:

protected string fnGetShoppingCartText()
{
if (Session["Cart"] != null)
{
ArrayList cart = (ArrayList)Session["Cart"];

int intItemCount = cart.Count;

if (intItemCount == 0)
{
return "Shopping Cart (Empty)";
}
else if (intItemCount == 1)
{
return "Shopping Cart (1 item)";
}
else
{
return "Shopping Cart (" + intItemCount + " items)";
}
}
else
{
return "Shopping Cart (Empty)";
}
}

-----
It fails on the line: ArrayList cart = (ArrayList)Session["Cart"];

I have EnableSessionState="true" set in the Page Directive.

I am using MS Visual Web Developer 2005 Express Edition. I am able to
reference this variable in other pages.

Your help is greatly appreciated.

Thank you,
Kevin G.
 
Ad

Advertisements

A

Alvin Bruney

it should only fail on that line if the session object is of some other type
where the cast cannot work. Use a safe cast instead and then test for null.
ArrayList arr = Session["cart"] as ArrayList;
if(arr != null) etc

What exactly is the error message when the failure occurs?

--

________________________
Warm regards,
Alvin Bruney [MVP ASP.NET]

[Shameless Author plug]
Professional VSTO.NET - Wrox/Wiley
The O.W.C. Black Book with .NET
www.lulu.com/owc, Amazon
Blog: http://www.msmvps.com/blogs/alvin
 
K

KevinGravelle

Thanks for your reply. Unfortunately, your suggestion did not work.
Here's the exact error message (using my original code):

Session state can only be used when enableSessionState is set to true,
either in a configuration file or in the Page directive. Please also
make sure that System.Web.SessionStateModule or a custom session state
module is included in the <configuration>\<system.web>\<httpModules>
section in the application configuration.
Description: An unhandled exception occurred during the execution of
the current web request. Please review the stack trace for more
information about the error and where it originated in the code.

Exception Details: System.Web.HttpException: Session state can only be
used when enableSessionState is set to true, either in a configuration
file or in the Page directive. Please also make sure that
System.Web.SessionStateModule or a custom session state module is
included in the <configuration>\<system.web>\<httpModules> section in
the application configuration.

Source Error:


Line 89: {
Line 90:
Line 91: ArrayList cart = (ArrayList)Session["Cart"];
Line 92:
Line 93: if (cart != null)
 
J

Juan T. Llibre

You need to :

1. include a <pages... > attribute in web.config :

<pages enableSessionState = "true" />

*or*

2. enable SessionState in the <%@ Page ...%> directive in your page :

<%@ Page enableSessionState = "true" %>

Also, the System.Web.SessionStateModule should exist in your
<httpModules> section in the application configuration.

Unless you've erased it, it should be there.
 
K

KevinGravelle

Still no go. I already had the enableSessionState directive at the top
of my aspx file, but I did not have the httpModules section in
web.config file. However, after adding this and rebuilding my project,
it still didn't work.

I am able to reference this same session variable on another aspx.cs
page (which also has the enableSessionState directive at the top of its
aspx file), so I'm not sure what the deal is. If you can think of
anything else for me to try, please let me know.

Thank you,
Kevin G.
 
K

KevinGravelle

I figured out the problem. I was trying to reference a session
variable that hadn't been initialized yet. I was trying to reference
the session variable in one of my page's class constructor before the
Session_Start function had been executed in the global.asax file.

Thanks for looking into this.

Kevin G.
 
Ad

Advertisements

C

conveda

I figured out the problem. I was trying to reference a session
variable that hadn't been initialized yet. I was trying to reference
the session variable in one of my page's class constructor before the
Session_Start function had been executed in the global.asax file.

Thanks for looking into this.

Kevin G.

I just found out that the same error also occurs when using
Server.Transfer to redirect the handling of the request to another
page.

It seems to me that this is a severe error because there is no reason
why this should not work. Can someone please report that to Microsoft?
:)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top