Thursday, April 19, 2012

Sharepoint 2010 does not invoke ProcessRequest of my custom HttpHandler

Well, I know it's IIS which is supposed to invoke it. Anyway; I have a Sharepoint solution which is supposed to return a special string when files with particular extensions are clicked on document libraries.



In the corresponding web.config file I have following to run this HTTP Handler:



<system.webServer>
<handlers>
...
<add name="MyFileHandler" path="*.bar" verb="*" type="Foo.Example.MyHandler, Foo.Example, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3b53a24010893ac2" resourceType="File" />
...
</handlers>
</system.webServer>


And the HttpHandler class is something like this:



namespace Foo.Example
{
public class MyHandler : IHttpHandler
{
public MyHandler(){} //For breakpoint

public void ProcessRequest(HttpContext context)
{
//Do stuff and write to response.
}

public bool IsReusable
{
get { return false; }
}
}
}


When I try to open a file with '.bar' extension on Sharepoint, it returns 404. What I do in ProcessRequest is not relevant because when I debug the handler, I can see that the handler's constructor is invoked but not the 'ProcessRequest'. Besides the debugger I have also put debug lines(File.AppendAll), again only the constructor gets invoked according to the debug output.



IIS 7.5.7600



Sharepoint 2010 Foundation





No comments:

Post a Comment