So the one thing I know is that with 4.5, iframes went from being HtmlGenericControls to HtmlIframes. This issue didn't start until I went from 4.0 to 4.8 but the iframe change does seem to be the driver of this issue.
The application I'm working with has 2 solutions that link differently depending on environment: a parent and a child when deployed to dev or prod (served via IIS, IIS 10 I guess based on the about menu) versus running side by side when testing locally (run via Visual Studio). To make the dev/prod instances work, I've had to delete the web.config in the child application's directory with each deployment and just let the web.config of the parent pass down. I have looked and both solutions' web.configs appear to be targeting 4.8:
<compilation debug="true" targetFramework="4.8">
...
<httpRuntime targetFramework="4.8" maxRequestLength="51200" enable="true" executionTimeout="1800" requestValidationMode="2.0" />
When I look at the built in error messages served both locally and in the servers, they do appear to match in looking for the same version:
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.8.4494.0
The frustrating thing with the project is when I work on it locally, it updates designer.cs towards HtmlIframe, but then I forget to manually go into the designer and change it to HtmlGenericControl, deploy to dev and as soon as it gets to the child application, I get the error message:
Parser Error Message: The base class includes the field 'FRAMEmain', but its type (System.Web.UI.HtmlControls.HtmlIframe) is not compatible with the type of control (System.Web.UI.HtmlControls.HtmlGenericControl).
And if I manually change it to HtmlGenericControl, and later attempt to test locally, I get the similar error message but the expectation vs reality are flipped:
Parser Error Message: The base class includes the field 'FRAMEmain', but its type (System.Web.UI.HtmlControls.HtmlGenericControl) is not compatible with the type of control (System.Web.UI.HtmlControls.HtmlIframe).
do the targetFrameworks in the web.config not do what I think they do? My goal is to make it so that dev/prod are looking for HtmlIframe like my local environment is so I can be rid of this, but they seem to treat it as 4.0. Initially, I thought the new servers that are running it didn't have anything but 4.8 installed as that was all that was in Windows/Microsoft.NET/Framework64, but then I looked in Framework and found that 1.0 to 4.0 have versions installed.
Edit: to throw more of a monkey wrench into this, I looked at the parent solution and it too has some iframe controls (sigh) in it yet it runs fine when HtmlIframe is in the designer file. It only seems to regress for the child solution.