Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to configure an Http Handler in IIS 7?

Here's what I want to do:

  1. I've created a class library project and this has a class implementing the IHttpHandler interface. Let's call this class ZipHandler. Let's say the namespace is Zip.
  2. I want that whenever any Http request comes for a zip file, my ZipHandler should handle it, regardless of whether the request is to an Asp.Net application or a normal virtual directory.

Queries:

  1. Is it possible (it should be given the hype about integrated pipeline etc. in IIS 7)?
  2. How to do it?
like image 747
Sidharth Panwar Avatar asked Nov 24 '10 06:11

Sidharth Panwar


2 Answers

Here's the info I was looking for:

If you want to register your custom HTTP handler at the IIS 7 Web server level, you must compile your HTTP handler into a strongly-named assembly and deploy it to the Global Assembly Cache (GAC) because IIS 7 only picks up assemblies deployed to the GAC. It does not pick up assemblies deployed anywhere else such as the bin directory of a particular Web site or Web application.

We're aiming to add this handler at web server level. After deploying the handler in GAC, open the web.config available at the web server level (right click and browse -> open the web.config show here) and put something like this in the handler section (the fully qualified name of the class):

<handlers>
<add name="Ch8_RssHandler" path="*.rss" verb="*"
type="ProIIS7AspNetIntegProgCh8.RssHandler, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=369d834a77" preCondition="integratedMode" />
</handlers>

Note: The information snippets (1st para and code sample) are taken from the book:
Professional IIS 7 and ASP.Net Integrated Programming by Dr. Shahram Khosravi

Seems like a very nice book :)

like image 60
Sidharth Panwar Avatar answered Sep 28 '22 11:09

Sidharth Panwar


This MSDN article How to: Configure an HTTP Handler Extension in IIS explains what you'll have to do. See the paragraph for the Integrated mode.

The file-name extension for .zeip must be registered in both the httpHandlers element and the handlers element.

You'll have to click Add Managed Handler in the Actions pane.

Using IIS Manager in IIS 7.0 to add a custom handler extension is equivalent to registering the handler extension in the Web.config file.

like image 25
splattne Avatar answered Sep 28 '22 11:09

splattne