Why the ServerObject retrieved by IServerObjectHelper in REST SOE is remote object?

Discussion created by wangzhifang-esrichina-com-cn-esridist on Sep 6, 2011
Hi everybody,
I just start build a custom REST SOE from Visual Studio template, and I learned the only way to get the ServerObject(MapServer) which SOE runs in is using IServerObjectHelper interface. I retrieved the MapServer using following code:
private IServerObjectHelper2 serverObjectHelper;
private IMapServer3 _mapServer;
#region IServerObjectExtension Members

        public void Init(IServerObjectHelper pSOH)
            serverObjectHelper = (IServerObjectHelper2)pSOH;
            _mapServer = (IMapServer3)serverObjectHelper.ServerObject;

and everything goes ok.
However, when I debugging the SOE, and add watch to the _mapServer variable, it's said that

Cannot obtain fields or call methods on the instance of type 'SOE.SOEDynamicTileMapService' because it is a proxy to a remote object.

In my opinion, the SOE is in the very same process as the ServerObject(MapServer), if so, why the ServerObject retrieved from IServerObjectHelper is remote object?