When I look at Trace.axd for my web application, it doesn’t appear that the session state is being set by the GoView control.
Yes, it should only be called once. It sounds like session state is being cleared for some reason.
EnableViewState is false for the view. The view is a control inside a user control which is then placed on our page. Could the user control be interfering with the session state somehow?
Yes, try setting GoView.EnableViewState to true.
Won’t that mean serializing a gigantic pile of stuff (all my nodes in my document, etc.)?
No, as I said above, the only thing GoView saves in view state is an identifier in the session. It’s what’s returned by GoView.MakeSessionViewID(). When there’s no view state available, it returns GoView.SafeID, which is an identifier-safe version of Control.UniqueID.