XmlSerializer не удалось найти файл C: \ Windows \ Temp \ *. Dll - PullRequest
4 голосов
/ 19 мая 2009

У меня есть веб-приложение ASP.NET 2.0, работающее на общем сервере известного поставщика веб-хостинга. Иногда мне кажется, что я получаю такие ошибки:

Не удалось найти файл 'C: \ WINDOWS \ TEMP \ lxnmfrsz.dll'. Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.IO.FileNotFoundException: не удалось найти файл 'C: \ WINDOWS \ TEMP \ lxnmfrsz.dll'.

Я искал вокруг, и кажется, что это общая проблема. Одно из решений - очистить временную папку или перезапустить IIS. Поскольку у меня нет доступа к этим вещам на сервере, которым я не владею, на самом деле это не вариант. Я попытался установить временный каталог в другой каталог, используя директиву в web.config, но он все еще использует временный каталог по умолчанию. Есть ли другой способ изменить временный каталог и / или решить эту проблему?

Ответы [ 2 ]

7 голосов
/ 19 мая 2009

Если вы всегда сериализуете один и тот же тип, вы можете попробовать предварительно сгенерировать двоичные файлы XmlSerializer с помощью sgen.exe . В этом случае XmlSerializer не будет их искать.

0 голосов
/ 07 апреля 2011

Единственное предостережение здесь заключается в том, что если задействованы генерики (например, List <> вашего типа), то, по-видимому, невозможно использовать sgen для предварительной генерации сборки сериализатора.

Обходной путь для этого - извлечь из List свой собственный тип, а затем включить его в предварительно созданную сборку.

...