2017-07-26 5 views
0

J'ai un service Web SOAP C# .NET 4.5 hébergé dans IIS 8.5. Comme ce service prend succès, je l'ai vu en permanence écrire les fichiers .tmp et .post dans ce répertoire C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\webservices_itcrateengine\2c7c6f10\8cbc7b94\uploads.Service Web ASP.Net: Empêcher les fichiers .tmp et .post pour les POST de grande taille

J'ai vu des conseils sur la Interwebs détaillant comment déplacer le répertoire temporaire ailleurs via l'attribut tempDirectory de la balise dans web.config.
J'ai également vu un conseil général à propos de la taille de téléchargement ~ 250k quand ASP.Net va écrire ces fichiers .tmp et .post, mais ce que je veux vraiment savoir, c'est comment puis-je spécifier une taille à laquelle Les tampons asp.net téléchargent les données sur le disque via les fichiers .tmp et .post?
Nous avons beaucoup de POST à ​​ce webservice tout au long de la journée, des milliers par heure, allant de 1k-1mb. Ces machines ont beaucoup de mémoire, donc si je peux changer le seuil .Net utilise pour la mise en mémoire tampon sur le disque, je m'attends à une charge beaucoup plus légère sur les disques physiques pour ce que je juge inutile IO.
Quelqu'un sait-il comment définir un seuil de taille de téléchargement qu'ASP.Net utilisera pour déterminer s'il faut créer ces fichiers .post et .tmp temporaires? Merci pour votre temps.

Répondre

1

Asp.net File Upload utilise HttpPostedFile pour enregistrer le fichier de la stream.From la documentation msdn

Les fichiers sont téléchargés dans MIME multipart/format form-data. Par défaut, toutes les demandes , y compris les champs de formulaire et les fichiers téléchargés, supérieures à 256 Ko sont mises en mémoire tampon sur le disque plutôt que dans la mémoire du serveur.

également en ce qui concerne la mémoire tampon

La quantité de données qui est mise en tampon dans la mémoire du serveur d'une demande, qui comprend le téléchargement de fichiers, peuvent être spécifiés en accédant à la propriété de RequestLengthDiskThreshold ou en réglant le requestLengthDiskThreshold attribut de l'élément httpRuntime (schéma ASP.NET Settings) dans le fichier Machine.config ou Web.config.

En ajustant la MaxRequestLength et RequestLengthDiskThreshold propriétés, vous pouvez affiner les performances de votre serveur

vous pouvez donc avoir un réglage plus élevé dans votre web.config par exemple 1024 Kb

<httpRuntime requestLengthDiskThreshold = "1024" 

Spécifie la limite pour le seuil de mise en mémoire tampon du flux d'entrée, en kilo-octets. Cette valeur ne doit pas dépasser l'attribut maxRequestLength.

+0

Merci Rohith, votre suggestion de définir le requestLengthDiskThreshold a parfaitement fonctionné. Nos POST de grande taille allant jusqu'à 1 Mo sur le service Web n'entraînent plus la création de fichiers .tmp et .post. – Peeticus