Question

Le problème est donc que la moitié de l’application est écrite en asp classique et l’autre moitié en asp.net.Il existe un fichier PDF (en mémoire) généré par le code asp classique que je dois partager avec la moitié .NET.J'ai pensé à enregistrer le PDF sur FS ou DB, ce que je suis sûr que la plupart d'entre vous ne recommanderaient pas car il faudrait passer par un processus très lent d'enregistrement sur IO, puis je devrais nettoyer manuellement après -- créant inutilement davantage de goulots d'étranglement et de points de défaillance.

J'ai pensé à imiter une publication de la page asp classique vers .NET en utilisant des objets Server.Transfer ou Microsoft.XMLHTTP, mais ni l'un ni l'autre ne correspond exactement au scénario car je veux vraiment que l'URL côté client pointe vers l'aspx .NET. page.Existe-t-il donc un moyen simple de créer un POST depuis un ASP classique vers une page .NET avec un fichier PDF intégré ?

Merci d'avance pour tout commentaire ou suggestion.

Était-ce utile?

La solution

Un peu un hack, mais...

Créez un formulaire en ASP classique avec un champ que vous remplissez avec les données du fichier PDF.L'action du formulaire serait la page ASP.NET.Quelque chose comme:

<body onload="pdfsenderform.submit()">
    <form name="pdfsenderform" action="pdf.aspx" method="post">
       <input type="hidden" name="pdffiledata" value="<%...output your PDF data here...%>" />
   </form>
</body>

Vous devrez peut-être encoder les données PDF binaires avant de les écrire dans le champ du formulaire (Base64 ou quelque chose du genre).

Autres conseils

Votre meilleur pari est probablement le FS ou la base de données compte tenu des difficultés d'interaction ASP.NET et ASP.C'est mon "chemin de moindre résistance".

Écrivez-le simplement sur le disque, stockez le nom du fichier dans un cookie ou une chaîne de requête et Response.Redirect l'utilisateur.Il est probable que ce soit "assez rapide" et beaucoup plus facile que d'écrire un serveur d'état du plus petit dénominateur commun accessible via TCP pour les deux - ce qui est la seule manière de procéder en mémoire à laquelle je puisse penser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top