I was deploying some code to one of my IIS servers and got this YSOD as seen in Figure 1. I had coded in Visual Studio 2017 with the .NET Framework 4.7 targeted from my ASP.NET Web Forms application I wrote.
Figure 1, Server Error, targetFramework=”4.7”
Server Error in “/” Application.
Description: An error occurred during the processing of a configuration file required to service this request. Please review the specific error details below and modify your configuration file appropriately.
Parser Error Message: The “targetFramework” attribute in the “compilation” element of the Web.config file is used only to target version 4.0 and later of the .NET Framework (for example, “compilation targetFramework=”4.0″”). The “targetFramework” attribute currently references a version that is later than the installed version of the .NET Framework. Specify a valid target version of the .NET Framework, or install the required version of the .NET Framework.
Line 6: configuration
Line 7: system.web
Line 8: compilation targetframework=”4.7″
Line 9: httpruntime targetframework=”4.7″
Line 10: /httpruntime/compilation/system.web /configuration
Source File: C:\inetpub\TcpClientTest\web.config Line: 8
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.6.1586.0
I like to look at the version of the mscorlib.dll file to see what version of the .NET Framework I have on my machine. When I looked, sure enough I had 4.6.1. See Figure 2.
Figure 2, how I check to see which version of the .NET Framework I am running
Once I installed 4.7 I checked again and saw this illustrated in Figure 3, as expected.
Figure 3, how I check to see which version of the .NET Framework I am running
I also just commented out the targetFramework references in my web.config file and because I wasn’t doing anything only available in the 4.7 version of the .NET Framework, my ASP.NET Web Forms application ran fine with 4.6.1.