On occasion I find that SPContext.Current returns null in the code behind of my InfoPath forms. This is occuring while I have the form open in a SharePoint 2010 site collection. I can't figure why this happens and other times it is fine. Typically I am forced to use this.ServerInfo.SharePointSiteCollectionUrl to get the URL for my SPSite or SPWeb object.
What are the advantages/disadvantages of using this.ServerInfo.SharePointSiteCollectionUrl vs using SPContext.Current?
When should this.ServerInfo.SharePointSiteCollectionUrl be used instead of SPContext.Current?