Iis – In IIS7, what is AboMapperCustom

iisiis-7

In my IIS7 configuration there appears to be a few handlers of the following form:

  • name: AboMapperCustom-[number]
  • path: *
  • preCondition: [empty]
  • scriptProcessor: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll

What is this for? Looking around MSDN suggests that ABO may be Admin Base Objects, but there's nothing obvious as to why that would need this kind of handler.

I think it's causing some issues for aspnet 4.0 applications on the machine due to the blank preCondition. I'm looking into 'fixing' the issue, but I'd like to know why the handler was created and what it's intended to do.

Thanks!

Best Answer

AboCustomMapper handlers are there to provide legacy support for applications that create mappings on IIS7 via the IIS6 compatibility layer (ADSI) instead of using the new managed API. i.e. the code creates IIS6 metabase Script Map objects which the IIS6 compatibility layer translates to handler mapping objects. They get named AboCustomMapper-XXXXXX because there is no equivalent name property in IIS6 for a script map, this is an auto-generated name.

ADSI on IIS7 is ignorant of Handler Mapping (analogous to an IIS6 Script Map) properties such as preConditions which, for example, permit multiple versions of ASP.NET's handler mapping definitions to co-reside in the same site or application. The ADSI compatibility layer will create objects known as AboMapperCustom objects which are sub-optimal in their configuration and are not aware of these new features.

In your case it looks like something (code/installer?) has created the equivalent of an IIS6 wild card script map to map any and all requests to ASP.NET and it has done this via the IIS6 compatibility layer.

This kind of thing isn't really needed any more on IIS7 with IIS7's integrated pipeline mode. You could edit the handler mapping and set the path to something like *.disabled to push it out of the way and then see what side effects or improvements that causes.