Difference between Machine.config and web.config
The machine.config file is the master configuration file on your system with a lot of default settings. Web.config is the file for the local settings to be applied for a website which store configuration data in XML format. The settings of Machine.config file are applied to the whole asp.net applications on your server whereas the settings made in the Web.config file are applied to that particular web application only.
Each .NET Framework version has only one machine.config file , at the same time, each web application has its own web.config file. Directories inside a web application can also have web.config files too. The machine.config file file is at the highest level in the configuration hierarchy while Web.config file is to override the settings from the machine.config file.
Machine.config Vs web.config
The machine.config would be to share values between many applications on the server such as SMTP server settings while Web.config files contain application specific items such as database connection strings. If you make any changes to the web.config, web application will immediately load the changes but in case of machine.config you will have to restart the application.
The machine.config file will automatically installed when you install Visual Studio.Net and it exist exists in the c:\windows\microsoft.net\framework\version\config folder whereas web.config will automatically created when you create an ASP.Net web application project. Machine.config is configuration file for all the application in the IIS, but Web.config is a configuration file for a particular application or folder.