Enabling Session State in SharePoint 2010?

2019-04-22 09:42发布

I have a web service built for SharePoint 2007 that I am trying to port to SharePoint 2010. This web service is dependent on session state to function properly, but so far, I have been enable to get session state to work at all in SharePoint 2010. This web service runs as its own web application under t he /_vti_bin virtual directory. I have tried all of the following with no luck:

  • Ensured the "State Service" service application is running.
  • Added the System.Web.SessionState.SessionStateModule http module to my application's web.config file.
  • Added the System.Web.SessionState.SessionStateModule http module to my SharePoint root web.config file.
  • Added <pages enableSessionState="true" /> to my application's web.config file.
  • Added <pages enableSessionState="true" /> to my root web.config file.

Additional Environment info:

  • Visual Studio 2008 - SP1
  • .NET 3.5 - SP1
  • SharePoint 2010 - RC
  • Windows Server 2008 R2
  • ASMX web service (not WCF)

Had anyone had any luck getting a web application or web service to use session state in SharePoint 2010 yet?

Thanks!

Steve

5条回答
戒情不戒烟
2楼-- · 2019-04-22 10:11

You may need to turn on the Session State Service. Use the PowerShell cmdlet Enable-SPSessionStateService. This will create a Session State database and start the service in SharePoint 2010.

Reference information: http://technet.microsoft.com/en-us/library/ee890113.aspx

查看更多
爱情/是我丢掉的垃圾
3楼-- · 2019-04-22 10:14

Joshua's solution helped point me in the right direction but I had to make some variations for my scenario - an ASP.NET 3.5 Web Site deployed to the _layouts folder.

Here are the steps that worked for me:

  1. changed the <pages> tag in the web.config for the Web Site to <pages enableSessionState="true" />

  2. Added the System.Web.SessionState.SessionStateModule module at the Sharepoint website level (not the entire IIS level - that'll break the Central Administration, I tried :( ) as per @Joshua's solution. If you're deploying a Web Application instead of a Web Site, you'll want to add it at your Web Application level.

Adding the SessionState HTTPModule below to the web.config didn't seem to have an effect for me, probably because I was riding on Sharepoint's web.config as my project was a Web Site and not a Web Application. Not too clear on this issue.

<httpModules> 
    <add name = "Session" type = "System.Web.SessionState.SessionStateModule" /> 
</httpModules>
查看更多
淡お忘
5楼-- · 2019-04-22 10:17

You've already answered this yourself somewhere else on the interweb. :)

<httpModules> 
  <add name="Session" type="System.Web.SessionState.SessionStateModule" /> 
</httpModules>

THEN, you must go into your web application and add the same session state module to the IIS7 managed pipeline.

  1. Open IIS 7 manager, and find your web application.

  2. Double click "Modules" in the IIS section.

  3. Click "Add Managed Module..." on the right hand pane.

  4. In the Add Managed Module dialog, enter "SessionState" or something like that for the name, and choose the following item from the dropdown:

    System.Web.SessionState.SessionStateModule, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a

After that, session state should be enabled for your web app/web service!

查看更多
ゆ 、 Hurt°
6楼-- · 2019-04-22 10:30

Do like below:

 <modules runAllManagedModulesForAllrequests>
   <add name="Session" type="System.Web.SessionState.SessionStateModule" />
 </modules>

modules is an xml tag. I don't know why, this post is not taking xml tags..

Thanks

Carol

查看更多
登录 后发表回答