programing

.NET 4.5로 업그레이드한 후 iFrame 파서 오류 발생

lastcode 2023. 6. 16. 21:47
반응형

.NET 4.5로 업그레이드한 후 iFrame 파서 오류 발생

4했으며 .NET 4.5 할 때 했습니다.iFrame원소의우리는 이를 수정했습니다.iFrameHtmlGenericControlHtmlIframe로컬에서 코드를 실행할 때 모든 파서 오류가 수정되었습니다.

앱을 배포할 때 다음 오류 메시지가 표시됩니다.

파서 오류 메시지:기본 클래스에는 'frame' 필드가 포함되지만 해당 유형(System)이 포함됩니다.Web.UI.HtmlControls.HtmlIframe)이(가) 컨트롤 유형(System)과(와) 호환되지 않습니다.Web.UI.HtmlControls.HtmlGenericControl)입니다.**

배때할포를로 이전 할 때HtmlGenericControl. 4에도 불구하고 이전 .NET 4.5를 설치했음에도 서버가 여전히 이전 버전을 사용하고 있음을 나타내는 오류가 사라집니까?

.NET을 제거하고 다시 설치하여 ASP를 IIS에 등록하도록 했습니다.

IIS 7.5 및 .NET 4.5가 설치된 윈도우즈 2008 R2

기본적인 문제는 ASP.NET 컴파일러(ASPX 및 ASCX 파일을 C# 또는 VB 코드로 컴파일)가 Web Forms IFRAME 서버 컨트롤에서 생성한 개체와 웹 Forms 코드 뒤에 있는 해당 컨트롤에 해당하는 변수 유형 간의 비호환성입니다. 컨트롤IFRAME 서버 컨트롤)<iframe id="frame" runat="server" />는 특정 유형의 컨트롤로 구문 분석됩니다..ASP.NET 4는 IFRAME 파일의 HtmlGenericControl입니다.ASP.NET 4.5에서 IFRAME 서버 컨트롤은 HtmlI 프레임 컨트롤이 됩니다.

이 문제는 web.config 파일의 컴파일 요소에 있는 targetFramework 특성이 프로젝트의 TargetFramework 속성과 일치하고 IFRAME 서버 컨트롤에 해당하는 변수가 ASP.NET 컴파일러가 생성할 컨트롤 유형과 일치하는지 확인하여 해결할 수 있습니다.

에서 . 4된 ASP 4 이 "Visual Studio 2013의 .NET Framework 4.5 참조)가 되도록 프로젝트의 web.config 을 수정합니다.<compilation targetFramework="4.5"/>이로 인해 ASP.NET 컴파일러는 IFRAME 서버 컨트롤을 HtmlI 프레임 컨트롤로 처리합니다.이로 인해 제어 변수 뒤에 있는 웹 양식 코드가 여전히 HtmlGenericControl인 경우 문제가 발생할 수 있습니다.표시되는 오류는 다음과 같습니다.

기본 클래스에는 'frame' 필드가 포함되지만 해당 유형(System)이 포함됩니다.Web.UI.HtmlControls.HtmlGenericControl)이 컨트롤 유형(System)과 호환되지 않습니다.Web.UI.HtmlControls.HtmlIframe).

이전 오류에 대한 해결 방법은 IFRAME 서버 컨트롤에 해당하는 서버 컨트롤 변수의 유형을 업데이트하는 것입니다.설계자 파일이 다시 생성되도록 웹 양식 HTML 파일을 다시 저장하여 이 작업을 수행할 수 있습니다.적어도 Visual Studio 2013에서는 컨트롤 ID를 변경할 필요가 없습니다.서버 제어 변수가 파일 뒤의 코드에 있는 경우 수동으로 업데이트해야 합니다.

뒤에 4.5"("HtmlIframe" ASP.NET 4.5 "web.config")인가 발생합니다.<compilation targetFramework="4.0"/>이로 인해 ASP.NET 컴파일러는 IFRAME 서버 컨트롤을 HtmlGenericControl 컨트롤로 처리합니다.표시되는 오류는 다음과 같습니다.

기본 클래스에는 'frame' 필드가 포함되지만 해당 유형(System)이 포함됩니다.Web.UI.HtmlControls.HtmlIframe)이(가) 컨트롤 유형(System)과(와) 호환되지 않습니다.Web.UI.HtmlControls.HtmlGenericControl)입니다.

이전 오류를 해결하는 방법은 web.config 컴파일 설정이 프로젝트의 Target Framework 속성과 일치하는지 확인하는 것입니다.이 경우 web.config에 있는 compilation 요소의 targetFramework 특성의 값은 "4.5"여야 합니다.

<compilation targetFramework="4.5"/>


참고: httpRuntime 요소의 targetFramework 특성을 4.5로 설정하면 컴파일 요소의 targetFramework 특성도 4.5로 설정할 수 있습니다.자세한 내용은 https://devblogs.microsoft.com/dotnet/all-about-httpruntime-targetframework/ 을 참조하십시오.

2:.<asp:HtmlIframe>tag.접두사 "를 등록하는 입니다. "asp" 태그 접두사를 시스템에 등록하는 중입니다.Web.UI.HtmlControls 네임스페이스는 IFRAME 서버 컨트롤을 사용하는 데 필요하지 않습니다.

다음 태그를 추가해야 합니다.

<asp:HtmlIframe>

디자이너에서 컨트롤 유형을 다음으로 변경합니다.

System.Web.UI.HtmlControls.HtmlIframe

Web.config에 다음을 추가합니다.

<controls>
 <add tagPrefix="asp" namespace="System.Web.UI.HtmlControls" assembly="System.Web"/>
</controls>

이것으로 해결될 겁니다.

우리는 변환하는 문제를 해결할 수 있었습니다.

<iframe id="iframe" runat="server" />

로.

<asp:HtmlIframe id="iframe" runat="server" />

구성 파일에 다음 설정이 있는지 확인합니다.또한 게시 후에 해당 위치에 있는지 확인합니다.

<system.web>
    <httpRuntime targetFramework="4.5" />
    <compilation debug="true" targetFramework="4.5"/>
    ...
</system.web>

도움이 되길 바랍니다.

HTML 요소를 다음과 같이 유지할 수 있습니다.<iframe>.vmdk 파일을 수정하여 형식을 변경합니다.

System.Web.UI.HtmlControls.HtmlIframe

추가(또는 여기서 답변의 조합으로).

태그를 실제로 변경할 필요는 없다고 생각합니다.iframeasp:HtmlIFrame된 업이트내대참있경는우조에 ,System.Web.UI.HtmlControls.

특정 버전의 태그 접두사를 제거하고 다음으로 바꾸도록 web.config를 업데이트했습니다.

<add tagPrefix="asp" namespace="System.Web.UI.HtmlControls" assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

빌드하면 됩니다.HtmlIFrame산출량.

저도 이 문제에 직면했지만, 이 UserControl을 삭제하고 동일한 이름의 새 UserControl을 추가한 후 문제가 해결되었습니다.

  <iframe id="logPanel" runat="server" scrolling="auto" src="">

디자이너 파일을 살펴보고 문제가 있는 컨트롤에서 HtmlGenericControl용 Htmliframe을 교체합니다.

.NET 4.5부터 마이크로소프트는 iframe을 HtmlGenericControl에서 자체 제어인 HtmlIframe으로 변경하기로 결정했습니다.그래서 당신은 그것을 바꿔야 합니다.

System.Web.UI.HtmlControls.HtmlGenericControls to System.Web.UI.HtmlControls.HtmlIframe

제 해결책은 IFrame의 이름을 바꾸고 재구축하는 것이었고 디자이너 파일은 올바른 참조로 업데이트될 것입니다.

언급URL : https://stackoverflow.com/questions/17809446/iframe-parser-error-after-upgrading-to-net-4-5

반응형