Scott Hanselman

ThreadAbortException woes

September 9, '05 Comments [7] Posted in ASP.NET | DasBlog | Bugs
Sponsored By

Hey readers, I'm starting to get this exception ALL the time on my site, and my ISP is starting to complain. It's also affecting uptime:

 System.Threading.ThreadAbortException: Thread was being aborted. at newtelligence.DasBlog.Web.Core.TemplateProcessor.ProcessTemplate(SharedBasePage page, Entry entry, String templateString, Control contentPlaceHolder, Macros macros) in C:\dev\DasBlog CE\source\newtelligence.DasBlog.Web.Core\TemplateProcessor.cs:line 118 at newtelligence.DasBlog.Web.Core.TemplateProcessor.ProcessTemplate(SharedBasePage page, String templateString, Control contentPlaceHolder, Macros macros) in C:\dev\DasBlog CE\source\newtelligence.DasBlog.Web.Core\TemplateProcessor.cs:line 61 at newtelligence.DasBlog.Web.Core.SharedBasePage.ProcessDayTemplate(DateTime day, Control ContentPlaceHolder) in C:\dev\DasBlog CE\source\newtelligence.DasBlog.Web.Core\SharedBasePage.cs:line 743 at newtelligence.DasBlog.Web.Core.Macros.get_Bodytext() in C:\dev\DasBlog CE\source\newtelligence.DasBlog.Web.Core\Macros.cs:line 1231 --- End of inner exception stack trace --- at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess) at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean verifyAccess) at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index) at newtelligence.DasBlog.Web.Core.TemplateProcessor.InvokeMacro(Object obj, String expression) in C:\dev\DasBlog CE\source\newtelligence.DasBlog.Web.Core\TemplateProcessor.cs:line 332 at newtelligence.DasBlog.Web.Core.TemplateProcessor.ProcessTemplate(SharedBasePage page, Entry entry, String templateString, Control contentPlaceHolder, Macros macros) in C:\dev\DasBlog CE\source\newtelligence.DasBlog.Web.Core\TemplateProcessor.cs:line 105
while processing .

I don't think it's dasBlog or the macro engine because:

A. Nothing has changed in this code in months
2. Most of what DasBlog does is in the Template Processor - like 90% - so if a thread were to abort, chances are it'd be happening in the code that runs 90% of the time.

That said, my ISP says that the site isn't recycling - they are basing this on the pid of w3wp.exe not changing. When ASP.NET "recycles" a site are they starting the AppDomain over or the whole process? I thought it was the process. Either way, you'd expect me to get another Application_Start event, and I'm not seeing that. I'm just seeing these Thread Aborts without app recycles.

Any ideas as I debug this?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

The Coming Return of AJAX

September 9, '05 Comments [9] Posted in ASP.NET | CodeRush | Javascript | Tools | XML
Sponsored By

I've been thinking about AJAX - not the Greek Hero, the technology - a lot lately. Of course, it's nothing new, blah blah Outlook Web Access blah blah DHTML blah blah IE 4.0. I totally hear you and I agree. It sucks that the folks that really conceived of DHTML aren't getting the props they deserve. But, that's the way of the 'net. That said, it's clear that folks are galvanized by the technology getting a sexy makeover (AJAX = sexy vs. DHTML = less so) but more that the technology really works. Sure Outlook Web Access is pretty, but it looks like crap in Firefox because it renders downlevel.  (Aside, it'll be interesting to see if there will be an ASP.NET 2.5 or something earth-shattering coming soon. From what I hear from contacts at public facing MS properties there's some amazing things coming that will melt our faces if we knew.)

Anyway, I've been collecting AJAX stuff in an attempt to grok what's coming and reconcile it with many years of JavaScript (née LiveScript) and these past years of ASP.NET. There a number of things happening all at the same time and the confluence of standards like XML, ECMAScript, the new data format JSON (pronounced "Jason" - The JavaScript Object Notation) along with specs to make the J and X in AJAX work better together plus broad browser support for XHTML and CSS is really bringing the promise of a Web that we were originally promised in 1996. The young people are calling it Web 2.0. Um, OK. If you lived through the BBS days, VT100, Lynx, Mosaic, AOL in DOS, CompuServe, Prodigy, and the pox that was Netscape 4, you realize it's Web 13.0.

Anil also makes a good point about the coming of dampening (another word for common sense + good design) as a design feature. Some folks may poo-poo the shiny and glare that is Windows Vista (and CodeRush for that matter) as eye-candy, but they will eventually die off and fade away. Well, they won't fade away, they will disappear instantly without a visual cue as to why they left. Regardless, let's put these Pentium 4s to work doing something more interesting than rebooting quickly.

Here's some AJAX useful links I've collected. Incidently, some were found during my recent GTD obsession/adoption.

Now playing: Musiq Soulchild - Just Friends

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

DasBlog - Nestings Blog

September 7, '05 Comments [0] Posted in ASP.NET | Movies | DasBlog | HttpModule
Sponsored By

Good info from DasBlonde about running multiple nested blogs using DasBlog:

For all you dasBloggers out there...if you want to have nested blogs like I have here:

www.ucsdxcommunity.com

www.ucsdxcommunity.com/ASPNET

...you have to first configure the subdirectory as an IIS application, then remove the <httpModules> section of the web.config in the nested blog. Modules can only be loaded 1x per appdomain, and the nested blog is loaded into the same appdomain by default.

The funny thing is, the error message tells you that it can't load the module twice, so this is actually pretty obvious, but if you are like me, you may have seen this error and started looking for a “bigger“ problem (I always do that...dunno why) ...therefore I didn't pay attention to the error message 'literally“ at first. [DasBlonde.NET]

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

TechEd - Code Generation WebCast - REPLAY

September 7, '05 Comments [5] Posted in ASP.NET | TechEd | Speaking
Sponsored By

I gave my TechEd 2005 talk as a Live Webcast this week. 135 people came, so that's cool. The recorded Webcast session is available here. Click the register link on the left of that page, log in via Passport, then you'll be able to view the webcast with LiveMeeting. There's also a regular WMV Video you can download.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Overwhelmed and enamored with FolderShare

September 6, '05 Comments [18] Posted in Reviews | Gaming
Sponsored By

Sure, there's other applications that have tried to solve problems like this before, but holy crap FolderShare nails it. Thanks Omar for the pointer!

I've been looking lately at getting some offline storage as my data situation is carrying with it a little too much "psychic weight." However, all these folks out there charging like $10 a month for a few gigs of offline storage? Please. Madness. 5 Gigs for $10 a month from XDrive? 5 Gigs? That'd barely cover my collection of Presentation PPTs.

FolderShare just nails it. Tiny download, 256-bit AES encryption, the files never touch their disks. That's freaking awesome.

I did the download, got a free account, and made a file on my desktop called "Shared Desktop." I'm all about using the Desktop as a work area. Then I clicked "Sync My Folders" and now I've got a folder on my desktop that is the same on my 3 machines. I can drop a file in there and it appears on my tablet.

I used it today when giving my MSDN Webcast. I just dropped my PPT in the folder at home and it was waiting for me at work.

Looks like there's three major classes of things that FolderShare can do:

  • Sync n number of folders (Depending on what you pay. Free gets you 2.) to and unlimited number of machines. Amazing.
  • Share a folder with another person. Much easier than FTP and the various other "get a big ass file to your friend" services that are out there. And really, when was the last time you were able to transfer a file using MSN Messenger? Puhlease.
  • Here's the kicker: Access your files from any machine, over the web. Cool? Kind of, but the real shiny thing is that you can do distrubuted search of all your machine using either Google Desktop or MSN Search. Since I run both on all machines, I'm not sure which is the preferred provider, but it works regardless.

This new development has me totally rethinking my storage strategy. This is finally a technology that cements P2P in my world. It's profound and very Internet 2.0-like. And their pricing structure is brilliant. Finally a company that realizes that I'm ONE GUY with a LOT OF CRAP. Don't penalize me for being a technoweenie.

Ideas:

  • Setup a Family Pictures folder that the whole family drops files from their digital cameras into. No one ever loses a picture if one hard drive crashes. Everyone sees photos as they are saved.
  • Save Video files from Windows Media Center 2005 and share out video of a show that my mom may have missed. (Not sure if this works, but, we'll see.)
  • Backup my Music files automatically to a NAS (Iomega NAS driver can apparently run FolderShare in their firmware. Wow. And I'd counted Iomega out of the game.)

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook twitter subscribe
About   Newsletter
Sponsored By
Hosting By
Dedicated Windows Server Hosting by SherWeb

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.