views:

243

answers:

2

I have a few aspx files in a "Cache" folder in my application and I do not want HttpModules to run for those files in that folder. I tried having a web.config in subdirectory but learned that HttpModules take the root web.config and not that of the subdirectory. Reference 1, Reference2. So I decided to have this directory as a sub application as per suggestion here and here.

So I configure my application,then "add application" , map it to this directory, which already was inside this application and boom, it fails. It works for a static html file, but aspx files are not available.

My question is, how do I configure a sub-application in IIS7 so that the sub-application can have its own web.config and there I can disable HTTPModules of the root application

Edit:In fact I tried creating a subapplication within my main application and it did not work. Can some one point me to any article on how to configure a sub-application in IIS7 ?

Edit2: adding the error image. So how should I configure the child app pool. The child app runs in the same app pool as that of parent

Edit3: sorry, the child was running on a different app pool. A generic app worked(without modules). I am marking the answer after I try out the modules.Thanks for your help guys. There is something specific in my parent app web.config, which I am going to hunt down now.

alt text

EDIT: Actually both the answers provided below are correct. If you are using IIS7 integrated mode your modules should be in system.webServer and if IIS7 - classic mode your modules (and handlers?) should be in system.web

+1  A: 

The web.config will always inherit from it's parent if it's in the same web application but you can clear the entire thing or remove an item like such...

From the child web.config (clear all or remove an item)


   <httpModuls>
      <clear />
     <remove name="MyModule"/>
   </httpModues>   

From the parent config by using the location tag...


   <location inheritInChildApplications="false">
    <system.web>
     <!-- ... -->
    </system.web>
   </location>

http://www.jaylee.org/post/2008/03/Prevent-ASPNET-webconfig-inheritance-and-inheritInChildApplications-attribute.aspx

JKG
nope, does not work
ram
Hmmm, that really should work. Have you tried this with just a simple folder and with the sub application? More examples... http://www.aspdotnetfaq.com/Faq/how-to-disable-web-config-inheritance-for-child-applications-in-subfolders-in-asp-net.aspxhttp://stackoverflow.com/questions/367282/disable-web-config-inheritance
JKG
Yes, I am trying to have a very simple "MainApp" and a "SubApp" as a subapplication of MainApp. Any html inside MainApp/SubApp works, but any call to http://MainApp/SubApp/myPage.aspx fails. I have updated the question too with this problem
ram
Do you mind pasting the exception your getting or the actual error details? That might help.
JKG
got a screenshot - and updated question
ram
+1 for the help
ram
+1  A: 

JKG has the right answer for IIS6, but the syntax is a little different in IIS7:

<system.webServer>
  <modules>
    <remove name="MyModule"/>
  </modules>
</system.webServer>
Matt Connolly
Good catch, to busy working I guess and I forgot about system.webServer!
JKG