Wer mit benutzerdefinierten Anwendungen innerhalb von SharePoint (3rd Party Tools oder eigene Lösungen) arbeitet, kennt evtl. den viel sagenden Fehler File Not Found. at System.Reflection.Assembly. Wenn das erweiterte Logging (CallStack=”true”, customErrors mode="Off") aktiviert ist, wird diese Fehlermeldung noch aufschlussreicher.
Die Ursachen dieses Fehlers sind oftmals in SharePoint integriere Webanwendungen, die eine referenzierte Assembly nicht finden können (Assembly Binding-Fehler).
Eine Referenz kann durch die @Reference-Direktive in der ASP.NET-Datei (ASPX, ASCX) oder auch direkt in der web.config definiert werden. So sähe eine Referenz in der web.config aus:
1:
2: <assemblies>
3: <add assembly="FM.Components.Logging, Version=1.0.0.0, Culture=neutral, PublicKeyToken=457afe59722ebee2"/>
4: </assemblies>
Die Fehlermeldung ist jeweils die gleiche. Zum Troubleshooting dieses Fehlers stellt Microsoft ein grafisches SDK-Tool bereit, dass durch die Installation von Visual Studio ausgeliefert wird. Der Assembly Binding Log Viewer (FUSLOGVW.EXE) überwacht alle Assembly Bindings innerhalb der Common Language Runtime und gibt detaillierte Informationen über den Erfolg bzw. Misserfolg und dessen Ursachen.
Das Tool kann aus folgendem Verzeichnis kopiert werden: %PROGRAMFILES%\Microsoft SDKs\Windows\v6.0A\Bin (bitte nicht Visual Studio in Produktivumgebungen installieren!). Zum Troubleshooting des File Not Found-Fehlers muss der Assembly Binding Log Viewer wie folgt konfiguriert werden.
- Erstellung eines Logging-Verzeichnisses auf dem betreffenden Server
- FUSLOGVW.EXE starten
- Settings > Log bind failures to disk und enable custom log path
- Worker Prozess (Application Pool) neu starten (wiederverwenden)
- Refresh
Nach der Aktualisierung kann die Liste der aufgeführten Logging-Elemente dazu genutzt werden, das Troubleshooting durchzuführen und die verursachende Assembly zu identifizieren.

Die Detailansicht eines Eintrags öffnet die entsprechende Log-Datei mit den weiteren Hinweisen.

Bereitgestellt
1 Sep 2009 13:48
von
Fabian Moritz