2009-05-19 6 views
4

Ich habe eine ASP.NET 2.0-Anwendung auf einem gemeinsamen Server eines bekannten Web-Hosting-Anbieter ausgeführt wird. Gelegentlich scheinen ich Fehler wie diese zu bekommen:XmlSerializer konnte nicht Datei C:. Windows Temp * dll

Datei konnte nicht gefunden 'C: \ WINDOWS \ TEMP \ lxnmfrsz.dll'. Beschreibung: Bei der Ausführung der aktuellen Webanforderung ist eine nicht behandelte Ausnahme aufgetreten. Bitte überprüfen Sie die Stack-Trace für weitere Informationen über den Fehler und wo es aus dem Code stammt.

Ausnahmedetails: System.IO.FileNotFoundException: Die Datei 'C: \ WINDOWS \ TEMP \ lxnmfrsz.dll' konnte nicht gefunden werden.

Ich habe um gesucht und es scheint, dass dies ein weit verbreitetes Problem. Eine Lösung besteht darin, den temporären Ordner zu löschen oder IIS neu zu starten. Da ich auf einem Server, den ich nicht besitze, keinen Zugriff auf diese Dinge habe, sind das keine wirklichen Optionen. Ich habe versucht, das Temp-Verzeichnis mit einer Direktive in web.config in ein anderes Verzeichnis zu setzen, aber es scheint immer noch das Standard-Temp-Verzeichnis zu verwenden. Gibt es eine andere Möglichkeit, das temporäre Verzeichnis zu ändern und/oder dieses Problem zu lösen?

+0

Haben Sie versucht, Ihren Hosting-Provider zu kontaktieren? –

+0

Ja, ich kontaktierte sie. Sie sagten, ich sollte einen speziellen ASP.NET Temp-Ordner verwenden. Das war, als ich dachte, ich würde den Ordner mit der web.config-Direktive setzen, aber es funktioniert immer noch nicht. –

Antwort

7

Wenn Sie immer den gleichen Typ serialisiert werden, können Sie pre-generating XmlSerializer binaries using sgen.exe versuchen. In diesem Fall sucht XmlSerializer nicht nach ihnen.

+0

, die in der Tat wahrscheinlich die beste Option ist ... außerdem wird die Leistung verbessert werden, da die Serialisierungsassembly –

+0

nicht erzeugt werden muß Ich habe dieses Problem in einer ganzen Weile nicht habe, aber das Problem würde immer im .NET-Framework auftritt Baugruppen, nicht meine eigenen Baugruppen. Ich glaube, es war ein Hosting-Problem. Sie haben die Webanwendung vor einiger Zeit auf einen anderen Server verschoben, und das Problem wurde beendet. Ich frage mich, ob es nur ein Problem mit dem Anwendungspool bei gemeinsam genutzten Servern mit vielen Webanwendungen ist. –

0

Die einzige Einschränkung hier ist, dass, wenn Generika beteiligt sind (z. B. eine Liste <> Ihres Typs), scheint es nicht möglich sein, sgen zu verwenden, um die Serializer-Assembly vorgenerieren.

Eine Problemumgehung dafür ist, aus der Liste < MyType> mit Ihrem eigenen Typ abzuleiten, dann fügen Sie dies in der vorgenerierten Assembly ein.

Verwandte Themen