Try adding a set of brackets to specify the operator priority:
Service obj = new Service();
obj = (RACS.Completion.Web.Private.Activity.Service)(Session["obj"]);
Alternatively, check that the Session["obj"] return value is a Service, as the error message implies it is a Session[] instead.
BTW: It is a bad idea to always create a new object to fill a variable when you construct it - particularly when you are going to replace it's content immediately. It wastes memory, and possibly other resources in the object constructor. Either leave it null, or create it when you do the initial assignment (from Session in your example)