문제:
이전에 작동했던 ASP.NET Web Forms 애플리케이션은 이제 일반 처리기 내에서 DoThis
메서드를 호출할 때 "System.MissingMethodException: 메서드를 찾을 수 없음" 오류를 생성합니다.
배경:
DoThis
메소드는 일반 핸들러와 동일한 클래스에 있습니다.<code class="language-csharp">public class MyHandler : IHttpHandler { public void ProcessRequest(HttpContext context) { // Now throws System.MissingMethodException: Method not found. this.DoThis(); } public void DoThis() { ... } }</code>
해결책:
이 예외는 일반적으로 DoThis
이 포함된 DLL과 응용 프로그램에서 참조하는 DLL 간의 버전 충돌로 인해 발생합니다. 문제를 해결하는 방법은 다음과 같습니다.
컴파일된 파일 정리: ~/App_Code/bin
및 ~/bin/
디렉터리에서 모든 파일을 제거합니다. 이렇게 하면 오래된 컴파일 코드가 간섭하지 않습니다.
재구축 및 재배포: 솔루션을 완전히 재구축하고 서버에 재배포합니다. 이를 통해 최신 어셈블리 버전의 배포가 보장됩니다.
중복 어셈블리 제거: ~/bin/Debug
또는 ~/bin/Release
와 같은 숨겨진 폴더에 중복되거나 오래된 어셈블리가 있는지 확인하세요. 불필요하거나 오래된 버전을 제거하세요.
이러한 단계를 수행하면 "System.MissingMethodException: 메서드를 찾을 수 없음" 오류가 해결되어 애플리케이션이 DoThis
메서드를 올바르게 호출할 수 있습니다.
위 내용은 내 ASP.NET Web Forms 응용 프로그램에서 'System.MissingMethodException'이 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!