Thought I'd share a really silly developer story here. A while back I built a scheduler application for ASP.NET which checks a POP3 mail box and looks for certain content. The app just pulls all messages and deletes them as it finds them (optionally) and forwards them to another email address with special message formatting.
The app runs as an ASP.NET application on a background thread so it's always on, always running. To make things even more interesting the app has a keep alive ping that pings itself via an Http request ever few minutes to keep the app from timing out and having IIS unload it, so the App Pools don't get shut down as they would otherwise. All as it should be for this app.
App was delivered a long while back, forgotten and yesterday I had to dig it out to make a few adjustments. Ran it made the changes quit VS forgot about it...
So today I'm noticing that my email isn't arriving. 3 emails in the morning? Awesome! A few more during the cause of the day -- great I'm going to get something done today (not really went sailing instead <s>). By evening I'm up to 10 emails or so and I'm thinking of calling my ISP WTF is going on.
Then it hits me!!!
It's NOT the ISP that's the problem but this scheduling app. I ran the app yesterday on my machine here locally. For testing I pointed the app at my POP3 inbox. I have the app configured to run with IIS (I never use the VS Web Server) and of course the app NEVER actually dies as is intended. So all this time the app's been virally running in the background happily deleting all of my emails <g>...
The sad part is that all of the mailbox options are configurable on just how the mailbox is polled and accessed so if I had remembered the settings and how the app works exactly I could have just turned off the delete option or at least the delete all messages option.
Fun, fun when you dig yourself a hole...
I'm just glad I figured this out BEFORE calling my ISP and making even more of a fool of myself <g>...
Other Posts you might also like