What made me curious is that the generic handler works just fine when I’m running the Web App in a Visual Studio ASP.NET Development Server. When I change the config to run it directly from IIS the handler just dies.
It’s an image handler, it writes back an array of bytes to be rendered in an Image object. As I said, it works fine in VS Development Server, but fails on IIS. It doesn’t even get called…
The error I get when I’m trying to call it directly is this:
Parser Error Description: An error occurred during the parsing of a
resource required to service this request. Please review the following
specific parse error details and modify your source file
appropriately. Parser Error Message: Could not create type
‘YourImageHandler’. Source Error: Line 1: <%@ WebHandler
Language=”C#” CodeBehind=”YourImagehandler.ashx.cs”
Class=”YourImageHandler” %>
Handler on web.config:
<system.web>
<httpHandlers>
<add verb="*" path="*.ashx" type="YourImageHandler"/>
</httpHandlers>
</system.web>
The Generic Handler is in the same assembly of the Web Project, and the whole thing is running on IIS 7.
If you are using IIS 7 in pipeline mode then the handler definition must be in <System.webServer>
Like this:
Check here: http://blogs.msdn.com/b/tmarq/archive/2007/08/30/iis-7-0-asp-net-pipelines-modules-handlers-and-preconditions.aspx
The other option is to run your site in “classic” mode, in classic mode IIS 7 works like IIS 6 and has the same behaviour (for what matters here) as your Cassini web server.
Hope that help.