[.net] Where Is Machine.Config?

I want to apply a change so That I can use Server GC settings for my C# 3.5 app - I can do that by editing the machine.config file.

The only problem is I do not know where that is.

How can I find the path of this file in a repeatable way across a number of different machines

This question is related to .net garbage-collection

The answer is


In order to be absolutely sure, slap a Label on an ASP.NET page and run this code:

labelDebug.Text = System.Runtime.InteropServices.RuntimeEnvironment.SystemConfigurationFile;

I believe this will leave no doubt!


C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG


In your asp.net app use this

using System.Configuration;
Response.Write(ConfigurationManager.OpenMachineConfiguration().FilePath);

You can run this in powershell:

[System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile

Which outputs this for .net 4:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config

Note however that this might change depending on whether .net is running as 32 or 64 bit which will result in \Framework\ or \Framework64\ respectively.


  1. Open Windows Run command. Shortcut=> windows key + r
  2. Type "microsoft.net" - MS .Net folder opens up
  3. Open "Framework"/"Framework64" folder(based on your processor).
  4. Select specific FW version folder e.g. "v4.0.30319"
  5. Open config folder
  6. Machine.config will be available there. Cheers.

It semi-depends though... mine is:

C:\Windows\Microsoft.NET\Framework\v2.0.50727\CONFIG

and

C:\Windows\Microsoft.NET\Framework64\v2.0.50727\CONFIG


You can run this in powershell: copy & paste in power shell [System.Runtime.InteropServices.RuntimeEnvironment]::SystemConfigurationFile

mine output is: C:\Windows\Microsoft.NET\Framework\v2.0.50527\config\machine.config