2011-07-08 1 views
0

J'ai un problème étrange lors du développement de mon site Web ASP.NET.Strange ASP.NET dll temporaire FileNotFoundException!

faits:

  • Le projet est un "site Web" non application Web
  • pool d'applications fonctionne sous "Système local"
  • IIS 7.0 est utilisé
  • processus de travail par des iis tuer ou redémarrer le problème de iis est parti.

Je reçois de manière aléatoire l'erreur suivante à partir d'emplacements aléatoires!

Could not find file 'C:\Windows\TEMP\rksbjov5.dll'. 

where each time dll name is something random. 

Quelqu'un a déjà eu ce problème? Toute solution? ou Pourquoi cela se passe-t-il?

+0

Avez-vous essayé de changer l'utilisateur du pool d'applications? Cette DLL TEMP est probablement votre DLL générée automatiquement qui change à chaque fois. Et probablement pour une raison quelconque, le compilateur ne peut pas écrire dans ce fichier pendant son utilisation. Peut-être un problème de droits d'utilisateur. –

+0

Je l'ai fait, et comme je l'ai mentionné dans la question, le pool d'applications s'exécute sous "Système local" qui est le dieu absolu sur ma machine! –

+0

Lorsque vous compilez, la DLL n'a peut-être pas pu être copiée vers la destination car elle est utilisée par le système local? –

Répondre

2

Ceci est un problème connu ...

Son parce que quand vous le débogage d'un site web en studio visuel que vous obtenez en permanence à mi-chemin à travers les choses puis arrêter de sorte que les fuites de mémoire se produisent alors les fichiers sont verrouillés puis une reconstruction au hasard se produit et tout n'est pas reconstruit.

effectuer une réinitialisation IIS puis débusquer les fichiers temporaires asp.net dans le dossier C: \ windows \ microsoft.net \ votre version du framework fichiers asp.net \ temp \

vous ne serez pas en mesure de supprimer tous les de ces fichiers sans une réinitialisation d'iis. Ceci est simplement un signe d'intégration pas idéale entre Visual Studio et IIS ... c'est pourquoi Visual Studio a son propre service web que vous pouvez utiliser car à chaque reconstruction, le serveur est supprimé, l'application est recompilée, le le service est redémarré et l'application/site rechargé dans le nouveau service Web. Ceci est un problème particulièrement ennuyeux quand vous faites des choses comme utiliser les connexions db et ne les fermez pas avant de sortir d'un bloc de code (ce qui se produit généralement lors du débogage), cela revient à appeler gc.colect sans avoir encore marqué quoi que ce soit pour la collecte des ordures.

ennuyeux je sais.

+0

merci, bonne explication. –