2009-05-19 2 views
4

잘 알려진 웹 호스팅 공급자의 공유 서버에서 실행되는 ASP.NET 2.0 웹 응용 프로그램이 있습니다. 때때로 이런 오류가 발생하는 것 같습니다 :XmlSerializer가 C : Windows Temp *. dll 파일을 찾을 수 없음

'C : \ WINDOWS \ TEMP \ lxnmfrsz.dll'파일을 찾을 수 없습니다. 설명 : 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 오류 및 코드에서 시작된 위치에 대한 자세한 정보는 스택 추적을 검토하십시오.

예외 정보 : System.IO.FileNotFoundException : 'C : \ WINDOWS \ TEMP \ lxnmfrsz.dll'파일을 찾을 수 없습니다.

나는 주위를 수색했는데 이것이 일반적인 문제인 것으로 보인다. 한 가지 해결책은 임시 폴더를 지우거나 IIS를 다시 시작하는 것입니다. 내가 소유하지 않은 서버에서 이러한 것들에 액세스 할 수 없기 때문에 실제로 옵션이 아닙니다. web.config에서 지시문을 사용하여 다른 디렉토리에 임시 디렉토리를 설정하려고 시도했지만 여전히 기본 임시 디렉토리를 사용하고있는 것처럼 보입니다. 임시 디렉토리를 변경하거나이 문제를 해결할 수있는 다른 방법이 있습니까?

+0

호스팅 제공 업체에 문의 해 보았습니까? –

+0

예, 연락했습니다. 그들은 특별한 ASP.NET temp 폴더를 사용해야한다고 말했다. 그 때 web.config 지시문을 사용하여 폴더를 설정한다고 생각했지만 여전히 작동하지 않습니다. –

답변

7

항상 동일한 유형의 직렬화를 수행하는 경우 pre-generating XmlSerializer binaries using sgen.exe을 시도 할 수 있습니다. 이 경우 XmlSerializer는 검색하지 않습니다.

+0

아마도 실제로 최상의 옵션 일 것입니다 ... 또한 직렬화 어셈블리를 생성 할 필요가 없기 때문에 성능이 향상 될 것입니다. –

+0

이 문제는 꽤 오래 있었지만 .NET Framework에서 항상 발생합니다 어셈블리가 아니라 내 어셈블리. 나는 그것이 호스팅 문제라고 생각한다. 그들은 웹 응용 프로그램을 다른 서버로 옮겨서 문제를 해결했습니다. 많은 웹 응용 프로그램이있는 공유 서버의 응용 프로그램 풀 문제 일까 궁금합니다. –

0

제네릭이 포함 된 경우 (예 : 유형이 List <>) sgen을 사용하여 직렬 변환기를 미리 생성 할 수없는 것입니다.

이 문제를 해결하려면 사용자 지정 형식의 목록 < MyType>에서 파생 된 다음 미리 생성 된 어셈블리에이 형식을 포함시킵니다.

관련 문제