Graffiti CMS - VDirs - ISAPI Rewrite and Partial Trust
I thought I would spend a few minutes today testing out Graffiti from Telligent. Graffiti is a fairly new blogging and content management system (CMS) which is meant to be very easy to install and setup. True to its word, it is impressively easy to get up and going. There are a few things that I found that are worth noting.
I wanted to install this in a VDir on a shared server here at ORCS Web and use ISAPI Rewrite to make it appear to run in the root folder with its own domain name.
In brief terms the install involved the following:
Download Graffiti (it's less than 3MB for the limited non-commercial version that I downloaded.)
Extract and save to disk
FTP the web folder to the vdir on the server
Mark the vdir as an application (assuming IIS is installed and setup)
Ensure that ASP.NET 2.0 is installed
Ensure that the App_Data folder is given write permissions for the application pool identity (assuming you use VistaDB which is what is used by default)
Test. It should work
Update the default passwords per the Graffiti installation instructions.
This confirmed that it works in a vdir without any issue. Just make sure to mark it as an application.
I also tried using ISAPI Rewrite so that one IIS site can be used for multiple websites. ISAPI Rewrite is an ISAPI Filter for IIS that allows for URL rewriting. Using ISAPI Rewrite 2.0, the rule looks like this:
RewriteCond Host: (www\.)?testGraffitiSite\.com
RewriteRule (?!/graffiti)(.*) /graffiti$2 [I]
# testGraffitiSite\.com is the domain name
# graffiti is the name of the vdir in IIS
Note that ISAPI Rewrite works at a different level than ASP.NET, so any time that ASP.NET does a redirect for any reason, it will append the full IIS path. That means that you may start out with www.testgraffitisite.com and end up on www.testgraffitisite.com/graffiti. It will still work, but it adds the extra part of the path to the URL. There isn't any way around that with ISAPI Rewrite, so just make sure that the vdir is a name that you don't mind people seeing. Obviouslly you can install Graffiti in the root of the site so that this isn't an issue, but I wanted to prove that it works well with ISAPI Rewrite.
I ran into one issue when helping someone else that installed Graffiti on a shared server. When trying to view the page, it took forever and finally timed out without displaying any real errors. That made it difficult to troubleshoot but I eventually determined that it was because of that shared server running in partial trust. I was able to set the site to run in full trust and everything worked perfectly. At some point I'll dig further to see what trust settings need to be changed so that this will work in partial trust, but for now I know that the modified medium trust permission on that shared server wasn't enough to run Graffiti and the error message wasn't clear at all, it simply timed out.
All said and done, it really wasn't difficult at all to get up and going, even running in a vdir with ISAPI Rewrite.
Once installed, the usability of Graffiti is great. It's easy to figure out, clean and nice and flexible.