Of late I have been working with a forward thinking company that has been deploying Sharepoint 2007 to production and using it as its Intranet.
Last night we upgraded the production servers to the RTM version from B2TR. Everything seemed to go great upgrading the servers but this implementation was a little different. The company has about 14 web applications that need to be reference from the sharepoint portal and they all are classic ASP or ASP.NET 1.1 applications. Still nothing strange there right?
We do the conversion and everything goes smooth. we install the virtual directories under the portal (sharepoint) web, and again everything seems to go smoothly. Click through the pages that hit the external applications and we find that all of the ASP.NET 1.1 applications that utilize session state get a very interesting error:
Server Error in '/XXXXXXX' Application.
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.
So after hunting and hunting, a very sharp guy on the team finds that the Web.config in the virtual directory for Sharepoint (<drive>://inetpub/wwwroot/wss/virtualdirectories/80) has the <pages> entry defined as:
<pages enableSessionState="false" enableViewState="true" enableViewStateMac="true" validateRequest="false" pageParserFilterType="Microsoft.SharePoint.ApplicationRuntime.SPPageParserFilter, Microsoft.SharePoint, Version=22.214.171.124, Culture=neutral, PublicKeyToken=71e9bce111e9429c" asyncTimeout="7">
We flipped the enableSessionState flag to true and low and behold no more error.
This took us a while to find and I know if the individual that found it didn't by chance see it then we would still be looking for this fix.
So, if you seem to encounter this issue, try giving the enableSessionState bit a flip and see what happens.