Sharepoint has two state service commands that threw me for a loop
first there is get-SPSessionStateService
then there is get-SPStateServiceApplication
Here’s an article from MSDN that talks about the differences
In Central Admin->Manage Service Applications these show up as follows:
Get-SPSessionStateService -> shows as type “SharePoint Server ASP.NET Session State Service”
Get-SPStateServiceApplication-> shows as type “State Service” and hopfully “State Service Proxy”
While you can easily delete both from Central admin, you can create neither of them from the service applications page.
Creating a new SPStateServiceApplication (and proxy) is relatively easy: 3 lines of powershell:
# from http://technet.microsoft.com/en-us/library/ee704548.aspx
$serviceApp = New-SPStateServiceApplication -Name ""
New-SPStateServiceDatabase -Name "" -ServiceApplication $serviceApp
New-SPStateServiceApplicationProxy -Name "" -ServiceApplication $serviceApp -DefaultProxyGroup
Creating a new SPSessionStateService, on the other hand is a little more involved…
How do I know?
I’m glad you asked….
I ran into an issue where an access report would not display because “session state is not turned on” it didn’t say which one, and through some trial and error, I now understand it was likely looking for the service returned by get-SPSessionStateService.
For me that returned a blank line with no database entry so I thought I’d be best to delete it and recreate it from scratch.
I was wrong.
While deleting and recreating the SPStateServiceApplication is easy, the SPSessionStateService was not easily done in SP2010 with the included powershell commands.
Fortunately I found this article: http://ikarstein.wordpress.com/2010/12/14/error-while-enabling-session-state-service-on-sharepoint-2010/ Which had the steps to recreate the service manually.
I enabled the ASP.Net state windows service, then followed the article above, stopping about half way through, before the provisioning part.
To Provision it, I used Enable-SPSessionStateService -DefaultProvision
Get-SPSessionStateService now returns a complete row, with a database server, and DB name, and ID and best of all Enabled = True
So to summarize my problem,
MS Access services reports needed “SPSessionStateService” which also uses the windows service “ASP.Net State Service”
In troubleshooting, I wasn’t aware of the difference between states so I deleted the “wrong” one in an attempt to reset it.
A little digging and I now have a better understanding of the issue and of the two different state services.
I hope this helps!