As stated, CM servers do not support shared session states, i.e. they do not support StateServer
or SQLServer
. CM servers have to be configured InProc
. One reason for this is controlling edits. If the content editor was being bounced between CM servers, some data may not be preserved correctly.
Since you are sharing servers for a CM and CD, you will not be able to use out of proc.
From a security standpoint, I do not recommend sharing your CD and CM server. Your CM server should not be available in a production environment. The cost of an additional CD license out weighs the cost of exposing the CM server.
Edit: Starting with Sitecore 6.5 U5, out of proc session state became experimental. Which means you can't get support for it.
I am adding the versions to the answer for CM support. NOTE: support is only experimental and I do not recommend using it on your Sitecore CM servers
According to the Sitecore Knowledgebase https://kb.sitecore.net/articles/901069, the following support notes have been abstracted for CM servers:
- Sitecore 6.5.0 Update-4 and earlier - only
InProc
- Sitecore 6.5.0 Update-5 (Service Pack-1) - "experimental support for using Sitecore Clients with SqlServer, StateServer, and other out-of-process session-state modes since CMS 6.5.0 Update-5.
Core features such as content editing and publishing should work as expected, but we are aware of a number of issues that have not yet been addressed, so the feature can be used for evaluation of this functionality, but is not considered production-ready yet."
- Sitecore 7.0 Update-3 - Further fixes
- Sitecore 7.5 Initial Release - Serialization errors found
ERROR Application error.
Exception: System.Web.HttpException
Message: Unable to serialize the session state. In 'StateServer' and 'SQLServer' mode, ASP.NET will serialize the session state objects, and as a result non-serializable objects or MarshalByRef objects are not permitted. The same restriction applies if similar serialization is done by the custom session state store in 'Custom' mode.
Source: System.Web
at System.Web.Util.AltSerialization.WriteValueToStream(Object value, BinaryWriter writer)
at System.Web.SessionState.SessionStateItemCollection.WriteValueToStreamWithAssert(Object value, BinaryWriter writer)
at System.Web.SessionState.SessionStateItemCollection.Serialize(BinaryWriter writer)
...
- Sitecore 7.5 Update-1 - fixed serialization and and additional fixes