Gareth Hughes > Moving to AppHarbor

This website uses cookies to improve user experience. By continuing to use this website I assume that you are okay with this.

Moving to AppHarbor


22 April 2012

I was holding out moving over to AppHarbor until they added support for RavenDB which they recently addded (http://blog.appharbor.com/2012/02/17/hosted-ravendb-on-appharbor). My current vps hosting which is massively underused was about to expire so I decided to make the switch.

Deployment

Deploying to AppHarbor is very easy, I opted to push to AppHarbor from my local git repo rather than integrating with BitBucket (http://support.appharbor.com/kb/getting-started/deploying-your-first-application-using-git).

Problems

I had a few initial deployment issues, such as having more than one sln file in my codebase. Then the fun started, the main problem I encountered was with Simple.Data and it proved quite difficult for me to solve, the first issue was the lack of error output from AppHarbor which I eventually solved with this class

   1: public class LogEvent: WebRequestErrorEvent
   2: {
   3:   public LogEvent( string message )
   4:     : base( null, null, 100001, new Exception( message ) ) {}
   5: }

When this is called with

   1: new LogEvent( e.Message ).Raise();

An error is recorded in the AppHarbor error viewer. I did get this code from somewhere on the web but I can’t remember where.

Once I had this in place I worked out that Simple.Data for some reason wasn’t working and also wasn’t reporting any errors. So I upgraded it and redid all the references to make sure there were no references to incorrect version. This however still didn’t work. I kept getting the exception “No ADO Provider found”, which isn’t the best error message. Simple.Data it seems doesn’t work if you don’t reference the Simple.Data dlls in projects that reference other projects using Simple.Data

So basically I have grhughes.com.Core which uses Simple.Data for database access and grhughes.com.Web which references grhughes.com.Core and for Simple.Data to work it needs to be referenced by both of these projects. I believe this is because it dynamically loads providers at start up and it can’t find them if they’re not referenced in the web project.

Now that’s all sorted the app is fully deployed and working.

comments powered by Disqus

© Gareth Hughes 2013 — gareth@grhughes.com — +61481554521