問題:
以前は機能していた ASP.NET Web フォーム アプリケーションは、汎用ハンドラー内で 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 フォーム アプリケーションが「System.MissingMethodException」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。