Das Problem:
Eine zuvor funktionsfähige ASP.NET Web Forms-Anwendung erzeugt jetzt den Fehler „System.MissingMethodException: Methode nicht gefunden“, wenn die DoThis
-Methode innerhalb eines generischen Handlers aufgerufen wird.
Hintergrund:
DoThis
-Methode befindet sich in derselben Klasse wie der generische Handler.<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>
Lösung:
Diese Ausnahme entsteht typischerweise durch einen Versionskonflikt zwischen der DLL, die DoThis
enthält, und der DLL, auf die die Anwendung verweist. So beheben Sie das Problem:
Kompilierte Dateien bereinigen:Entfernen Sie alle Dateien aus den Verzeichnissen ~/App_Code/bin
und ~/bin/
. Dadurch wird sichergestellt, dass kein veralteter kompilierter Code stört.
Neu erstellen und erneut bereitstellen: Führen Sie eine saubere Neuerstellung Ihrer Lösung durch und stellen Sie sie erneut auf Ihrem Server bereit. Dies garantiert die Bereitstellung der aktuellsten Assembly-Versionen.
Doppelte Baugruppen entfernen: Suchen Sie nach doppelten oder älteren Baugruppen, die sich in versteckten Ordnern wie ~/bin/Debug
oder ~/bin/Release
befinden. Entfernen Sie alle unnötigen oder veralteten Versionen.
Durch Befolgen dieser Schritte sollte der Fehler „System.MissingMethodException: Methode nicht gefunden“ behoben werden, sodass Ihre Anwendung die DoThis
-Methode korrekt aufrufen kann.
Das obige ist der detaillierte Inhalt vonWarum löst meine ASP.NET Web Forms-Anwendung eine „System.MissingMethodException' aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!