Two of my clients want to run a portal for their companies and asked me to set it up. I really want to use mojoportal, but I STILL can't get it working on the linux/mono/mysql platform. Here is a step by step procedure of what I have done so hopefully someone could point out my mistakes so I can get them online.
1. Run "svn checkout https://forgesvn1.novell.com/svn/mojoportal/trunk" to download current subversion mojoportal version. (Revision 3617)
2. Opened the solution "mojoportal-complete.sln" with Visual Studio 2008 Professional
3. Changed the solution to 'Release' from 'Debug'
4. In project mojoPortal.Business dropped the mojoPortal.Data.MSSQL reference and added mojoPortal.Data.MySql reference
5. In project PollFeature.Business dropped the PollFeature.Data.MSSQL reference and added PollFeature.Data.MySql reference
6. In project SiteOffice.Business dropped the SiteOffice.Data.MSSQL reference and added SiteOffice.Data.MySql reference
7. In project SurveyFeature.Business dropped the SurveyFeature.Data.MSSQL reference and added SurveyFeature.Data.MySql reference
8. In project WebStore.Business dropped the WebStore.Data.MSSQL reference and added WebStore.Data.MySql reference
9. In properties of project mojoPortal.Web, on the Build tab, added "MONO USESETTINGSMAP" to Conditional compilation symbols
10. Rebuild solution
11. Used unleash it to create a deployment directory. Added *.html,*.asmx,*.ashx,*.xml,*.xsl,*.master,*.skin,*.xsd,*.browser,*.theme,*.png,*.ico to the defaults.
12. Upload contents of Deployment Web directory to my hosting server.
13. Latest mono compiled and installed from svn. (revision 99890)
14. Virtual configuration file is as follows.
<VirtualHost *:80>
ServerAdmin webmaster@mydomain.com
ServerName www.mydomain.com
DocumentRoot "/var/www/virtual/mojoportal"
ErrorLog logs/www.mydomain.com.error.log
CustomLog logs/www.mydomain.com.access.log combined
HostnameLookups Off
UseCanonicalName On
MonoAutoApplication enabled
MonoDebug enabled
MonoApplications mojoportal "www.mydomain.com:/:/var/www/virtual/mojoportal"
MonoDocumentRootDir mojoportal "/var/www/virtual/mojoportal"
MonoServerPath mojoportal "/usr/bin/mod-mono-server2"
MonoMaxMemory mojoportal 200000000
MonoMaxCPUTime mojoportal 3600
MonoApplications mono "www.mydomain.com/mono:/mono:/var/www/virtual/mojoportal/mono"
MonoDocumentRootDir mono "/var/www/virtual/mojoportal/mono"
MonoServerPath mono "/usr/bin/mod-mono-server2"
<FilesMatch "\.(gif|jp?g|png|css|ico|xsl|wmv|zip)$">
SetHandler none
</FilesMatch>
Alias /mono "/var/www/virtual/mojoportal/mono"
<Location /mono>
SetHandler mono-ctrl
MonoSetServerAlias mono
Order deny,allow
Deny from all
AuthType Basic
AuthUserFile /var/www/.htpasswd
AuthGroupFile /var/www/.htgroup
AuthName "mojoportal Mono Control Panel"
require group admin
Satisfy Any
</Location>
<Location />
MonoSetServerAlias mojoportal
SetHandler mono
Options Indexes FollowSymLinks
AllowOverride None
order allow,deny
Allow from all
</Location>
</VirtualHost>
15. Delete Microsoft.Web.Preview.dll and System.Web.Extensions.dll from bin
16. Delete settings.map.config from the root
17. Copy Web.mono.config to Web.config
18. Change <customErrors mode="Off" defaultRedirect="Error.htm" /> in Web.config
19. killall mono;service httpd restart
At this point the installation creates the tables without any errors, but the first time you try to go to the site you get this error:
he parent type 'mojoPortal.Web.WebPartUI.WebPartModule' does not derive from System.Web.UI.UserControl
Description: HTTP 500. Error processing request.
Stack Trace:
System.Web.Compilation.ParseException: The parent type 'mojoPortal.Web.WebPartUI.WebPartModule' does not derive from System.Web.UI.UserControl
at System.Web.UI.BaseParser.ThrowParseException (System.String message, System.Object[] parms) [0x00000]
at System.Web.UI.TemplateParser.SetBaseType (System.String type) [0x00000]
at System.Web.UI.TemplateParser.ProcessMainAttributes (System.Collections.Hashtable atts) [0x00000]
at System.Web.UI.TemplateControlParser.ProcessMainAttributes (System.Collections.Hashtable atts) [0x00000]
at System.Web.UI.UserControlParser.ProcessMainAttributes (System.Collections.Hashtable atts) [0x00000]
at System.Web.UI.TemplateParser.AddDirective (System.String directive, System.Collections.Hashtable atts) [0x00000]
at System.Web.UI.TemplateControlParser.AddDirective (System.String directive, System.Collections.Hashtable atts) [0x00000]
at System.Web.Compilation.AspGenerator.TagParsed (ILocation location, TagType tagtype, System.String tagid, System.Web.Compilation.TagAttributes attributes) [0x00000]
at System.Web.Compilation.AspParser.OnTagParsed (TagType tagtype, System.String id, System.Web.Compilation.TagAttributes attributes) [0x00000]
at System.Web.Compilation.AspParser.Parse () [0x00000]
at System.Web.Compilation.AspGenerator.Parse (System.String file, Boolean doInitParser) [0x00000]
at System.Web.Compilation.AspGenerator.Parse (System.String file) [0x00000]
at System.Web.Compilation.AspGenerator.Parse () [0x00000]
at System.Web.Compilation.GenericBuildProvider`1[System.Web.UI.TemplateParser].Parse () [0x00000]
at System.Web.Compilation.GenericBuildProvider`1[System.Web.UI.TemplateParser].get_CodeCompilerType () [0x00000]
at System.Web.Compilation.BuildManager.GetCodeDomProviderType (System.Web.Compilation.BuildProvider provider) [0x00000]
at System.Web.Compilation.BuildManager+BuildItem..ctor (System.Web.Compilation.BuildProvider provider) [0x00000]
at System.Web.Compilation.BuildManager.LoadBuildProviders (System.String virtualPath, System.String virtualDir, System.Collections.Generic.Dictionary`2 vpCache, System.Web.Compilation.BuildKind& kind, System.String& assemblyBaseName) [0x00000]
at System.Web.Compilation.BuildManager.BuildAssembly (System.String virtualPath) [0x00000]
at System.Web.Compilation.BuildManager.GetCompiledType (System.String virtualPath) [0x00000]
at System.Web.UI.TemplateControl.GetTypeFromControlPath (System.String virtualPath) [0x00000]
at System.Web.UI.TemplateControl.LoadControl (System.String virtualPath) [0x00000]
at mojoPortal.Web.CachedSiteModuleControl.CreateChildControls () [0x00000]
at System.Web.UI.Control.EnsureChildControls () [0x00000]
at System.Web.UI.Control.PreRenderRecursiveInternal () [0x00000]
at System.Web.UI.Control.PreRenderRecursiveInternal () [0x00000]
at System.Web.UI.Control.PreRenderRecursiveInternal () [0x00000]
at System.Web.UI.Control.PreRenderRecursiveInternal () [0x00000]
at System.Web.UI.Control.PreRenderRecursiveInternal () [0x00000]
at System.Web.UI.Control.PreRenderRecursiveInternal () [0x00000]
at System.Web.UI.Page.ProcessLoadComplete () [0x00000]
at System.Web.UI.Page.InternalProcessRequest () [0x00000]
at System.Web.UI.Page.ProcessRequest (System.Web.HttpContext context) [0x00000]
Any ideas?