Posted by: John Ferringer | August 1, 2011

When MIMEs Attack…or at Least Won’t Let Files Open in the Right App


A little over a year ago, I ran into an odd situation at a client that I was recently reminded of while listening to Todd Klindt’s SharePoint Admin Netcast (Episode 87), which I highly recommend. The root cause of my issue was very similar to what Todd went through with users downloading files from his blog, but there’s also some interesting differences in how the issue presented itself for me that I wanted to go ahead and get it written down in case anyone else out there runs into a similar problem down the road. In my case, we were having issues because an Adobe Illustrator file was opening on client computers in Adobe Acrobat Reader rather than its actual default application: Adobe Illustrator.

So here’s the background on the scenario. We built out a WSS v3 and Search Server Express 2008 environment (we started planning it out w/ the customer while SharePoint 2010 was still in Beta, and none of us wanted to wait on it) on Windows Server 2008 R2 with IIS 7.5. End users were running Windows XP (which I sometimes accidentally refer to as the Fisher Price operating system, sorry!), Office 2003/2007 (another reason why we waited on SharePoint 2010), and IE 7 or 8. The environment was running pretty well, and we were in the early stages of running a Pilot program for early adopters and the SharePoint steering committee.

One of the key use cases for this SharePoint environment was to allow the company’s marketing department to share and access a vast bank of digital media (mainly images, but also some videos) that they had accumulated over the years. Most of it was stored in multiple locations, but they were going to move it to a centralized network file share so it could be indexed by Search Server Express and be searchable from within SharePoint (a lot of the files were pretty large, so SharePoint’s content databases didn’t seem like the right place to put it, but it was something we planned on re-evaluating once we got to 2010 with its enhanced media management capabilities and remote BLOB storage). The other thing the marketing department wanted to do was to use SharePoint’s check in/check out and versioning functionality to be able to collaborate more easily on image documents that they were working on for various marketing campaigns. This could include image file formats we’re using to seeing in Internet sites such as .JPG, .GIF., and .PNG, as well as file formats for editing tools like Adobe Photoshop (.PSD) and Adobe Illustrator (.AI).

My main concern was to make sure that the users were going to be able to upload files with those .PSD and .AI file extensions into the WSS sites, so I confirmed that they weren’t listed on the blocked file types list in the WSS Central Admin site (if you’re looking for info on that, this TechNet article has the default list for WSS v3 and instructions at the bottom of the list on how to modify it in your farm: http://technet.microsoft.com/en-us/library/cc287701%28office.12%29.aspx) and figured that was that. And as usual when I make assumptions like this one, it turns out that wasn’t that.

A week or so after I opened up the marketing team’s site, the steering committee member from marketing told me about a strange issue he was having. He had uploaded several Photoshop and Illustrator files into a document library in his site without any issue, but was running into a major problem whenever he tried to open an Illustrator file from the library. When he opened it (didn’t matter if he was doing it as an Edit or just by clicking on it), his computer was always using Adobe Acrobat Reader to open the .AI file, instead of Illustrator. My initial thought was that this was an issue with his client computer; that somehow the mapping of the default application that the computer should use to open Illustrator files had been changed to incorrectly point to Acrobat Reader instead of Illustrator. But we quickly proved that wasn’t the case, because he was able to double-click on local .AI files and they automatically opened in Illustrator on his computer. I also saw that it happened for other users on the same computer (so it wasn’t an issue with his local profile in XP), as well as other users with Illustrator installed on their computers (which indicated it was a server-based problem, rather than a local workstation issue).

It’s been a long, long, long time since I spent any serious time in Adobe Illustrator (believe it or not, I used to be a Mac diehard, but I haven’t seriously used one since Mac OS version 7.5.5), so I ran the problem by a teammate who does. What he came back with surprised me (I still kind of thought it was a client issue at this point), but shouldn’t have. It turns out that the problem was in IIS, with how the web server was telling the client computers what type of file they were being sent when the user tried to open the .AI file. IIS uses something called MIME types (MIME as in Multipurpose Internet Mail Extensions, not Marcel Marceau) to indicate what type of data is contained in a file by mapping file extensions to a type of file content; its how your computer knows that a .PPTX file you’re downloading from Sky Drive should be opened in PowerPoint instead of Outlook. And in this case, IIS didn’t quite know what to do with the .AI file type for Adobe Illustrator so it was mapping it to the MIME type for PDF files, which led to the client computer always trying to open it with Acrobat Reader.

Once we had that figured out, all I had to do to resolve the issue was to add a new MIME type to the IIS servers in the farm for the .AI file extension with a value of “image/ai”. After that was configured properly in IIS and saved, users were able to successfully open Illustrator files directly from a SharePoint site with the Illustrator client application without a problem. If you want more details on how to add MIME types in IIS 7/7.5, there’s a very good article on TechNet you should check out (http://technet.microsoft.com/en-us/library/cc725608%28WS.10%29.aspx), it tells you how to do it from both within the IIS Manager UI and from the command line.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Categories

%d bloggers like this: