Ayende @ Rahien

It's a girl

I hate IIS today

I am trying to execute the following piece of code:

Microsoft.Web.Administration.WebConfigurationManager.GetSection("system.webServer/httpHandlers");

Of course, this fails with a completely bizarre exception.

image

For some reason, I have the feeling it is not supposed to do that. Trying to explicitly pass the path where web.config lies also fails. When I finally made it use the correct path, it still gave the same error.

Urgh!

Comments

Joao Braganca
06/10/2008 04:52 PM by
Joao Braganca

That should be system.webServer/handlers for IIS7 or system.web/httpHandlers for IIS6.

C-J Berg
06/10/2008 07:16 PM by
C-J Berg

So you are trying to read a non-standard section (or misspelled, but IIS cannot know that) that's not declared in configSections, and you then get upset because IIS tells you so, in plain english even? :-)

Try this:

WebConfigurationManager.GetSection("system.webServer/handlers");

Ricardo Stuven
06/10/2008 07:18 PM by
Ricardo Stuven

For backward compatibility, you should change to "Classic" ASP.NET integration mode... or keep it "Integrated" and change the config file (system.web/httpHandlers -> system.webServer/handlers)

See http://learn.iis.net/page.aspx/243/aspnet-integration-with-iis7/

Ayende Rahien
06/10/2008 08:18 PM by
Ayende Rahien

C-J Berg,

Um, no, it is a standard section, and notice what I am trying to do:

Microsoft.Web.Administration.WebConfigurationManager, this is using the IIS7 API, and I am trying to read the IIS 7 data.

Ayende Rahien
06/10/2008 08:18 PM by
Ayende Rahien

That is not what I want, I want to read the data from the IIS7 data, in integrated mode.

And I am using system.webServer/handlers, but that is not readable, unfortunately.

Ricardo Stuven
06/10/2008 09:04 PM by
Ricardo Stuven

And I am using system.webServer/handlers

Your code and the error message say: "system.webServer/httpHandlers"

Ayende Rahien
06/10/2008 09:20 PM by
Ayende Rahien

Damn!

You are correct.

Thanks!

C-J Berg
06/10/2008 10:06 PM by
C-J Berg

What I meant was that it's not a standard section in IIS7; you used the standard name for IIS6 (hence the "misspelled").

Anyhow, if you want to manipulate the handlers section, Microsoft provides an assembly for that purpose: Microsoft.Web.Administration.dll (found in %SystemRoot%\System32\InetSrv). Its ServerManager lets you read the app's host config, and you can also update and save it. (It can also be used to control any other aspect of IIS7, so you no longer need to use WMI/ADSI to configure sites.)

Comments have been closed on this topic.