2009-04-24 12 views
0

J'ai créé une application Web dans laquelle l'utilisateur peut demander un rapport généré sur le serveur et renvoyé au client. Le processus fonctionne correctement et renvoie le fichier au client, mais nous ne pouvons pas ouvrir le fichier. Une enquête plus approfondie révèle qu'un processus sur le serveur a toujours un handle sur le fichier par le pool d'applications IIS.Le fichier généré dynamiquement sur le serveur ne libère pas le gestionnaire de processus .NET sur Windows Server 2003

Voici la partie étrange:

  1. Le code .NET appelle Close() qui ferme le fichier et flux sous-jacent.
  2. Ce problème se produit uniquement dans nos serveurs de production. En développement et en test, cela fonctionne bien.
  3. Nous avons essayé de changer beaucoup de paramètres différents sur le serveur et dans IIS
  4. Nous avons essayé beaucoup d'idées différentes pour que cela fonctionne sur le serveur de production sans aucune chance jusqu'à présent.

Quelle est la cause de ceci? Nous exécutons Windows Server 2003, IIS 6. S'il vous plaît, aidez !!

Répondre

1

Exécutez-vous un logiciel antivirus sur le serveur? Il peut être l'analyse du fichier, car il s'agit d'un nouveau fichier.

Je me fais l'écho du commentaire de PITADeveloper ci-dessus, à propos de Dispose. Je dirai plus loin que vous devriez vous assurer que chaque objet que vous créez implémente IDisposable a Dispose appelé. Si vous le créez, vous devez l'éliminer:

using (var resource = ResourceType.Create()) 
{ 
    // Use the resource 
} // resource.Dispose called here even if your code throws an exception 
0

Vous dites que "Le code .NET appelle Close()" sur le fichier. Appelle-t-il également Dispose() sur toutes les ressources utilisées pour créer le fichier?

0

Si vous envoyez le fichier via HTTP, aucun verrouillage par le serveur n'aura d'effet sur l'ouverture du fichier sur le client. Êtes-vous sûr que le serveur ferme le fichier sur votre serveur de production? Il se peut que quelque chose sur votre serveur de production empêche l'application Web de générer entièrement le fichier.

Questions connexes