Search code examples
asp.netiisweb-config

Cannot find equivalent of system.web.compilation.tempDirectory for system.webServer


In web.config, what is the equivalent of system.web>compilation[tempDirectory] attribute but using the more up to date system.webServer instead of system.web?

Here is what I need to add to my web.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.web>
    <compilation tempDirectory="W:\vhosts\mysite.com\tmp" />
  </system.web>
</configuration>

However, my current web.config relies on system.webServer, not system.web and adding the attribute results in an internal server error 500.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="true"/>
    <rewrite>
      <rules>
        <rule name="Angular Routes" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="./index.html" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Solution

  • compilation[tempDirectory] is depending on system.web, so you cannot add it in system.webServer.

    But system.web and system.webServer can both exist in web.config. They won't lead to conflict.

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    
     <system.web>
    <compilation tempDirectory="W:\vhosts\mysite.com\tmp" />
    </system.web>
    
    <system.webServer>
    <urlCompression doDynamicCompression="true" doStaticCompression="true" dynamicCompressionBeforeCache="true"/>
    <rewrite>
      <rules>
        <rule name="Angular Routes" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
          </conditions>
          <action type="Rewrite" url="./index.html" />
        </rule>
      </rules>
    </rewrite>
    </system.webServer>
    </configuration>