Wednesday, May 30, 2007

Windows Live Writer Updated

via Omar:  WLW has been updated and now addresses the one major feature that was missing previously: adding categories to your blog posts.  Previously, I had to either edit the post's XML directly, or manually add the category through DasBlog's Web UI.

Friday, March 30, 2007

IIS7 and 404.3 Error

Here is something that I am sure developers will run into as they start to create web sites on their local Vista boxes using IIS7.  I thought I would just put this out here to save people some time.  If you are like me, you will go to the 'Turn Windows features on or off' selection and simply check the IIS7 option like so:

If done correctly, this installs the ASP.NET environment and all the appropriate stuff.  If not, you get an interesting error when you browse to the first .aspx page on your site.  Specifically, you will get a nice 404.3 error similar to this:

The part that should tip you off that something is completely misconfigured  is the part of the the error message (which are sooo much nicer these days) where the module is being reported as the "StaticFileModule".  Static files are things like .html files, jpegs, etc. where we are not performing any server side logic.  We know that our .aspx files need to be processed by the .NET runtime, so we should see something else as the handler there.

Now, here comes the confusing part.  Bring up the IIS Manager (Windows Key > "Inetmgr"), and view the Handler Mappings for your site and you will see something similar to this:

Notice that all of the ASP.NET extensions are missing?  There are no handlers defined for the .aspx, .asmx, .ashx or any other .NET extensions.  If you bring up the handlers installed on the machine however, you will see that they are all just fine:

At this point, you may be like me and scratching your head asking, "why are my handlers not being inherited correctly"?  If you are like me, then you will probably try delete your web app and then re-add it back.  When that fails you will try to uninstall and reinstall IIS7 again.  When that doesn't work, you will try to reinstall ASP.NET manually from the command line using "aspnet_regiis -i" or something similar.  When that fails, you will spend hours on Google trying to see what other people have done.  It might also cross your mind to just add them manually to your configuration.  If you are like me, however, that seems dirty and you will keep trying.

To save you some time, it actually turns out it is pretty easy to fix.  Simply DELETE the "Default Web Site", and then ADD it back.  The Handlers will be re-applied correctly and your virtual directory or web site will have all the correct handlers installed.  It is confusing why this even happens with a fresh install, but it appears to be a frequent occurrence according to Google searches.  Coming from IIS 5.1 and 6, it might be counterintuitive to delete a site, but this is actually not a big deal in Vista since you can have as many of these as you like (no artificial limits anymore).  I hope this saves someone some time.

Note to the IIS7 teamman, it would really be nice if you had a button that said something like "apply inherited handlers" or something like that.

Monday, March 12, 2007

A New Look

I have been playing with a new look for the site. I think this particular one is a bit cleaner looking than the previous one that shipped with DasBlog. I know that there are some bugs to be worked out, but I like it well enough that I think I will go ahead and put the site live with the new look and tweak stuff later (it is mostly the admin UI).

What do you think?

Monday, January 29, 2007

So long trackbacks...

I am getting pretty sick of deleting the random trackbacks to old posts that were spam related.  Even with the nice feature of DasBlog that allows me to delete them via email, I am still spending way too much time doing this.  So, today I have decided to turn off trackbacks for now.  In the future, if DasBlog added a feature where trackbacks were only enabled for period of time (hmm... I might be able to do this), that would go a long way for me to limiting how much I have to keep on top of deleting the bogus ones and I might reenable it.

Jeff Atwood had some nice commentary on the sad state of trackbacks worth reading.

Thursday, January 26, 2006

Strange DasBlog Error Fixed

Previously I was getting an intermittent error with DasBlog that would cause the entire site to freeze up.  Scott Hanselman was kind enough to point out the bug and suggest that I upgrade the binaries to fix it:

“This happens if, IMMEDIATELY FOLLOWING AN APP RECYCLE, a category page is hit, rather than a page in the root. The HttpModule thinks that the AppDomain is starting up with the category page as it's root and chaos ensues.”

I have been waiting a few weeks to ensure that this patch indeed fixed it, and it appears to be golden now.

Thanks Scott!

Saturday, December 10, 2005

Strange DasBlog Error

This blog site which has been quite neglected while I work on the book occasionally gets a bizarre error.  I have not had a chance to look into it at all and it is not reproducible in any way that I know. It just seems to occur randomly and usually after a long period of time.  Here is the stack trace:

[DirectoryNotFoundException: Could not find a part of the path 'C:\Inetpub\wwwroot\\wwwroot\dasblogce\category\SiteConfig\blockedips.config'.]
   System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +1885372
   System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) +916
   System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) +115
   System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize) +85
   System.IO.StreamReader..ctor(String path) +117
   newtelligence.DasBlog.Web.Core.IPBlackList.GetBlockedIPs(String configPath) in C:\dev\DasBlog CE\source\newtelligence.DasBlog.Web.Core\IPBlackList.cs:62
   newtelligence.DasBlog.Web.Core.IPBlackList.GetBlockedIPs(HttpContext context) in C:\dev\DasBlog CE\source\newtelligence.DasBlog.Web.Core\IPBlackList.cs:37
   newtelligence.DasBlog.Web.Core.IPBlackList.HandleBeginRequest(Object sender, EventArgs evargs) in C:\dev\DasBlog CE\source\newtelligence.DasBlog.Web.Core\IPBlackList.cs:102
   System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +92
   System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +64

If anyone has seen this and knows what’s up, shoot me an email.

Wednesday, August 17, 2005

On Installing DasBlog

Heeding Scott’s advice, I decided to install DasBlog last weekend.  I had expected the installation to take some time, so I was not really prepared when I had DasBlog up and running in approximately 10 mins.  With the help of DotText2DasBlog, most of the content was moved over automatically.  I say mostly, because the tool was unable to move all the content and I did not feel like digging into the source to figure out why.

Why did I move?  I wanted a change and an update from my very old version of .Text.  However, I was not interested in installing all of CS including the forums and picture gallery.  I also wanted to break the SQL Server dependency.

All in all, DasBlog appears to be a very finely tuned and specific app for a single user blog.  I love the XCOPY deployment and the management is a snap.  I was blown away by how fast it was to get up and running.  Great job guys.


Tuesday, August 16, 2005

Moved Blog

I suppose I will be breaking everyone's aggregator, but I am now changing from .Text to DasBlog.  As part of the process, I will not be able to easily move all my previous posts.  I have tried to grab most of the previous posts, but I am sure I will miss a few.  Hopefully, nothing too interesting will be lost.  I will be fixing links to pictures and samples in the next few days as well.

I have redirected the original rss.aspx to the DasBlog feed url.  If you can read this, you should probably update the feed so you are not getting constantly redirected.



Monday, July 18, 2005

Finally purchased BlogJet

Posting to this blog using the web front-end on .Text got pretty old, pretty fast.  I explored a number of options including wBloggar and BlogJet.  I finally settled on purchasing BlogJet, even though wBloggar was free.  There were enough compelling features that I felt justified in purchasing this product.  At some level, perhaps I also thought that it would make me sit down and actually blog more… we’ll see on that one though.

Now, I have to admit to something… I actually had to crack the BlogJet protection in order to evaluate it.  I had downloaded it some time ago, and was unable to use it because of proxy settings it did not support.  I was unable to use it for any of the first 30 days.  The developer was nice enough to send me a file that ‘reset’ BlogJet for another 30 days.  In the mean time, the proxy settings would still not let me post (but wBloggar worked fine) despite a slight rev for BlogJet.  I ended up sitting on BlogJet for months until I moved clients and got away from the proxy setup that was causing me issues.  In the meantime, my evaluation had expired again!  Instead of bugging the developer again for yet another extension, I just downloaded a keygen and evaluated it for the next 2 weeks.

After I got some real use from it, I decided that I would like to continue to use it and I purchased it.  My thoughts were that I would like to compare it to wBloggar and see which one was better.  If I didn’t like BlogJet, I intended to just uninstall it and go with the free solution.  It turned out that I preferred BlogJet and now I am an owner… hopefully the developer understands.  I think it benefited us both.