Résumé
Nous avons une application ASP.NET qui permet aux utilisateurs d'interroger une base de données SQL Server via une couche intermédiaire (plutôt standard) . Lorsque l'utilisateur tente de générer un fichier PDF pour les lignes qui leur ont été renvoyées. Chaque ensemble de lignes avec un identifiant commun «se transforme» en une page distincte dans le PDF résultant. A l'origine, je supposais que le nombre de lignes serait d'un ordre de grandeur qui conduirait à acheminer le PDF final dans le flux de réponse ASP et à laisser l'utilisateur télécharger le fichier sur sa machine, mais les nouvelles exigences indiquent que le nombre de lignes est très grand et très en dehors de l'échelle pour laquelle j'avais conçu cela.Comment opérations temps d'arrière-plan/IO-consommation à travers un pare-feu dans ASP.NET C#
Ma solution actuelle est la suivante:
Si le nombre de lignes retournée est supérieure à une configuration valeur
threshold
, l'utilisateur reçoit un message qui demande qu'ils veulent ou non pour générer les années PDF dans la arrière-plan et être notifié par e-mail avec une URL lorsque c'est fait, afin qu'ils puissent les télécharger.Si acceptable pour l'utilisateur, je crée deux
DataTable
s: Un avec les données réelles, et un avec MetaData, par exemple où enregistrer le fichier PDF résultant, le nom et d'autres informations de type méta. Je peux ensuite utiliserDataTable.WriteXML
pour générer un fichier "travail" dans un dossier particulier.Tout cela est fait dans un thread séparé, afin que l'utilisateur puisse continuer à faire ce qu'il veut.
Problème:
Je veux vraiment stocker le fichier xml du travail sur une machine dans notre pare-feu (dossier réseau partagé), mais il semble que je ne peux pas pour des raisons de sécurité. On m'a dit que je pourrais vouloir utiliser Usurpation d'identité et j'ai essayé, mais je ne pouvais pas le faire fonctionner. L'autre partie de cette application est quelque chose qui "écoute" le dossier "input", et traite ces fichiers "job" une fois par heure (ou un calendrier similaire), déplace le fichier PDF généré à l'emplacement requis et envoie un email à l'utilisateur. J'ai obtenu la partie qui lit les fichiers de travail et génère le travail PDF, et la partie qui crée les fichiers de travail fonctionne (quand je l'exécute dans le pare-feu), mais quand je l'exécute en dehors du pare-feu, j'essaye même , ça ne marche pas. (Ne cesse de dire « emplacement réseau introuvable »
Question (s):.?
Vais-je sur ce la bonne façon
Comment puis-je écrire ces fichiers à travers le pare-feu
Toutes les idées de conception ou suggestions?
Merci à l'avance.
De quel côté du pare-feu se trouve le serveur SQL Server/Web? (Je suppose qu'il est à l'extérieur?) – realworldcoder
Le SQL Server est à l'intérieur du pare-feu. – funkymushroom