Archives / 2010
  • IIS: Notes on Server-Side Includes (SSI) Syntax (KB 203064 Revisited)

    Many years ago I wrote Microsoft KB article 203064 about using Server-Side-Include (SSI) files with IIS 4 and IIS 5, but that KB has long since vanished from Microsoft's support website because it was never updated for IIS 6 or IIS 7. I eventually turned the information from that KB article into a blog post, but that being said, I still see questions about SSI showing up in the IIS forums every once in a while. There was a great deal of useful information in that KB article about general SSI syntax and several practical examples for SSI directives, so I thought that it would make a good blog post if I updated the information from that KB for later versions of IIS.

  • Adding Windows Phone 7 Support to BlogEngine.NET

    I love BlogEngine.NET, and I love my Windows Phone 7 mobile phone, so it goes without saying that I would want the two technologies to work together. I'm currently using BlogEngine.NET 1.6.1, but Windows Phone 7 is not supported by default. That being said, it's really easy to add support for Windows Phone 7 by modifying your BlogEngine.NET settings. To do so, open your Web.config file and locate the following section:

  • Using URL Rewrite to Modify WebDAV PROPFIND Responses with BIG-IP's SSL Offloading

    I ran into an interesting situation recently where a customer was using F5's BIG-IP for SSL offloading with their web farm and they were having problems with WebDAV. Here's the details of the scenario: BIG-IP adds a proprietary FRONT-END-HTTPS: ON header to requests, and that header is ignored by IIS 7 because it's proprietary to BIG-IP. This is expected behavior, but it presented an interesting problem from a WebDAV perspective - the responses to PROPFIND requests contain XML with URLs. Since BIG-IP is performing SSL offloading, the requests use HTTPS to BIG-IP, then HTTP from BIG-IP to IIS, so the URLs in the XML of a PROPFIND response are listed using HTTP instead of HTTPS. So when a WebDAV client tries to access any of the URLs from the PROPFIND response, it's using the non-secure URL instead of the secure URL.

  • Fun with Search Engines (Revisited)

    Several months ago I wrote a blog that was titled "Fun with Search Engines (Bing versus [other])," where I described how I had used the Bing Search API and Microsoft's Internet Security and Acceleration (ISA) Server 2006 to trick users on my home network into using a website that looked and acted like a Big Search Engine That's Not Bing (BSETNB) even though it was secretly using Bing under the hood. If you had read my earlier blog you would have known that I did this as a test to see if anyone would detect any differences, and oddly enough no one actually noticed.

  • Modifying Configuration Redirection Settings using PowerShell

    I have to admit right up front that I'm not a PowerShell expert. But having said that, I had a great question a few days ago from Chris Morrow at MaximumASP - Chris asked how I could use PowerShell to modify the Configuration Redirection settings for IIS 7. I had only written PowerShell scripts that accessed settings in the applicationHost.config file, so Chris' question piqued my curiosity. After a while my curiosity gave way to obsession when my first couple of attempts weren't successful, but I'll spare you the details and stick to describing what worked. ;-]

  • Detecting FTP Leeches with LogParser

    Someone asked me an interesting question the other day, "How do I detect if any users are leeching my FTP site?" That's a great question, and it warrants some explanation and a little LogParser code.

  • Life after FPSE (Part 5)

    We recently hosted a group of customers from a large hosting company here at Microsoft, and as the meeting was getting started everyone in the room was introducing themselves to the other attendees. As I was shaking hands with one of our visitors, I introduced myself by name and he had a brief moment of recognition, then he asked, "Wait a minute - are you the guy that's trying to drive a stake through the heart of the FrontPage Server Extensions?" I laughed and answered, "Well, I wouldn't put it that way, but yes - that's me." He ecstatically replied "Thank you!" and proceeded to give me a high five, then he continued the discussion by explaining how much he hated the FrontPage Server Extensions (FPSE).

  • Uh, yeah - I meant to fix that...

    One of my coworkers (Mike Pope) sent me the link to a great blog post by Raymond Chen that was titled "Don't forget to replace your placeholder bitmaps with real bitmaps". Raymond's blog was a good story, but he referenced another great blog post titled "We Burned the Poop", and let's be honest - who can resist reading a blog post with a great title like that? (Note: I won't spoil the impact of that blog - you should read it first.)

  • FTP Clients - Part 9: Expression Web 4

    For this installment in my series about FTP Clients I'm going to review the FTP features in Microsoft's Expression Web 4 (EW4). You can find out more about the Microsoft Expression series of products from the following URL:

  • Scripting the SmartFTP Client

    In my last blog post I reviewed the SmartFTP Client, where I briefly mentioned that the SmartFTP Client has built-in extensibility support, and I promised to include a script that I've been testing. I have made it abundantly obvious in many of my earlier blog posts that I love writing scripts or extending the functionality of existing products whenever I can, so having built-in extensibility for an FTP client definitely caught my interest.

  • FTP Clients - Part 8: SmartFTP Client

    For this installment in my series about FTP Clients I'm going to review the SmartFTP Client from SmartSoft Ltd. For this blog post I used the SmartFTP Client Ultimate Edition version 4.0.1105.0, and it is available from the following URL:

  • FPSE and Form Results over Email (SMTP)

    I have seen many issues over the past few years when customers try to use the FrontPage Server Extensions (FPSE) to send form results via email, and a recent post to was enough motivation for me to decide to write a blog about this issue. I've helped a lot of customers to get this scenario working, and with that in mind, I'd like to explain a little bit about the technology involved, its limitations, and what I think is the best workaround for the situation.

  • FrontPage Server Extensions and UNC Content

    I've had a few questions about getting the FrontPage 2002 Server Extensions (FPSE2002) AllowUNC feature to work with Windows Server 2008, so I thought that I would put together a blog from some of the information that I had been giving out whenever someone was having problems.

  • IIS 6.0 WebDAV and Compound Document Format Files

    We recently ran into a situation where a customer thought that they were seeing file corruption when they were transferring files from a Windows 7 client to their IIS 6.0 server using WebDAV. More specifically, the file sizes were increasing for several specific file types, and for obvious reasons the checksums for these files would not match for verification. Needless to say this situation caused a great deal of alarm on the WebDAV team when we heard about it - file corruption issues are simply unacceptable.

  • Updated IIS 7 Configuration Reference

    One of the many projects that I've been working on for the past several months is an updated version of the IIS 7 configuration reference that describes every configuration setting for IIS in detail, which is located at the following URL:

  • Using FTP with Different Account Types

    I was going through some of my notes the other day and I stumbled across the following chart that I thought I'd share. I put this chart together for a coworker that had asked me about some of the advantages and disadvantages when using different account types with FTP.

  • Outlook Macros Part 2: Cleaning Up Your Calendar

    Continuing my brief departure from my normal IIS-related blogs and looking at Office Outlook again, today's blog looks at cleaning up your calendar. If you read my previous blog about Moving Emails Into Personal Folders, you would have read about my need to clean up my mail folders because I was running out of room on my Exchange server. A short time before that situation I had run into a different issue: I was looking through my calendar and I discovered that I had several meetings in my calendar that were from many years ago - in fact, I had a few meetings in my calendar that were well over ten years old!

  • Outlook Macros Part 1: Moving Emails Into Personal Folders

    I'd like to take a brief departure from my normal IIS-related blogs and write about something that we use everyday - email; and in my specific situation I am using Microsoft Office Outlook. So if you just want IIS information, you can stop reading now - otherwise, you are proceeding at your own risk. ;-]

  • FTP Clients - Part 7: Kermit FTP Client

    Since I started reviewing FTP clients I've had a few requests to look at a few different FTP clients, and I've managed to analyze a few of those clients in my blog. A few weeks ago I had a request from one of my readers that really caught my interest - Shabbir Talib contacted me through my blog and asked me to review the Kermit FTP Client. I found his request especially appealing because I used to use Kermit before the public learned about the Internet; back then I was using Kermit to access dial-up Bulletin Board Systems (BBS's) and to connect to my college's VAX system. That being said, I hadn't used Kermit in years so I couldn't resist taking a look.

  • Sending WebDAV Requests in .NET

    Earlier today one of my coworkers, John Bocharov, asked me if I had ever done any WebDAV coding in .NET - specifically sending PUT and DELETE requests. I replied that I had, but it had been several months ago, and each time that I had written any WebDAV-related code samples it was for a specific purpose and not very exhaustive. Just the same, I promised John that if I found any of my old code samples I would send them to him. After a bit of searching through my archives I was able to find enough code snippets to throw together a quick sample for PUT and DELETE that John could use, but it made me start thinking about putting together a more complete sample by adding a few extra WebDAV methods, thereby creating a better example to keep around.